阅读:1184回复:1
2000 DDK的Packet例程性能问题请教!!
各位大侠:
小弟我打算用2000 DDK的Packet例子做东西,先做了个试验,别的什么都没改,就在PacketReceiveIndicate函数前面加上一句return,直接返回了,这样来测试一下Packet的抓包速度,然后用TestApp把Filter设为Directed,全速拷贝文件,然后用DbgView看输出,平均PacketReceiveIndicate每秒收600多个报文,然后设置到混杂模式,每秒收900多个报文,可是我用Sniffer,人家每秒可是1500多没问题啊,我还什么操作没加呢,各位发表一下高见啊! |
|
沙发#
发布于:2005-03-16 20:49
代码如下
NDIS_STATUS PacketReceiveIndicate ( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE MacReceiveContext, IN PVOID HeaderBuffer, IN UINT HeaderBufferSize, IN PVOID LookAheadBuffer, IN UINT LookaheadBufferSize, IN UINT PacketSize ) /*++ Routine Description: PacketReceiveIndicate is called with a pointer to a lookahead buffer. If this buffer contains less than the full, received network packet, it calls NdisTransferData with a protocol-allocated packet descriptor specifying protocol-allocated buffer(s) to obtain the remainder of the received packet. Arguments: Return Value: --*/ { POPEN_INSTANCE open; PIO_STACK_LOCATION irpSp; PIRP irp; PLIST_ENTRY packetListEntry; PNDIS_PACKET pPacket; ULONG sizeToTransfer; NDIS_STATUS status; UINT bytesTransfered = 0; ULONG bufferLength; PPACKET_RESERVED reserved; PMDL pMdl; DebugPrint((\"ReceiveIndicate\\n\")); return NDIS_STATUS_SUCCESS; //后面原来的代码... } 然后我在DbgView看输出字串“ReceiveIndicate”,Directed模式每秒就600多个,这可不行啊!各位大侠给个意见奥! |
|