阅读:1667回复:11
能否取得以太包的内容?
DDK中PACKET协议驱动程序中数据到达后,进入
INT PacketReceivePacket( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_PACKET Packet ) 能否在此函数中取得以太包的内容? |
|
|
沙发#
发布于:2004-04-13 13:20
在什么情况下,一个PACKET挂接N个BUFFER?
|
|
|
板凳#
发布于:2004-04-13 12:50
一个PACKET可以挂接N个BUFFER,当遍历完这N个buffer后就返回空。
|
|
地板#
发布于:2004-04-13 11:43
VOID 在什么情况下执行NdisGetNextBuffer(BuffDT,&BuffDT);后,会满足BuffDT!=(PNDIS_BUFFER)NULL的条件? |
|
|
地下室#
发布于:2004-04-13 09:32
当一个包来到时进入PacketReceivePacket处理,作自己需要的事情,但是在没有完成之前,又来了一个包。这种情况下,ndis怎样处理新来的包,
1;是等到上一次PacketReceivePacket处理完后,再触发PacketReceivePacket函数吗? 2:还是不再进入PacketReceivePacket函数,等到PacketReceivePacket函数退出之后,再来新的包,再进入PacketReceivePacket函数呢? 3:还是进行别的处理? |
|
|
5楼#
发布于:2004-04-13 08:42
VOID
CopyPacket2Buffer( IN PNDIS_PACKET pPacket, IN OUT PUCHAR pBuff, IN OUT PUINT pLength ) { PNDIS_BUFFER BuffDT; PUCHAR BuffVA; UINT BuffLen; *pLength=0; BuffLen=0; NdisQueryPacket(pPacket,NULL,NULL,&BuffDT,NULL); while(BuffDT!=(PNDIS_BUFFER)NULL) { // NdisQueryBuffer(BuffDT,&BuffVA,&BuffLen); NdisQueryBufferSafe(BuffDT,&BuffVA,&BuffLen,16); NdisMoveMemory(pBuff,BuffVA,BuffLen); pBuff=pBuff+BuffLen; *pLength+=BuffLen; NdisGetNextBuffer(BuffDT,&BuffDT); } return; } |
|
6楼#
发布于:2004-04-13 08:36
yangmin26,怎么给分呢?
|
|
|
7楼#
发布于:2004-04-12 18:54
先给分。马上给代码 ;)
|
|
|
8楼#
发布于:2004-04-12 17:03
我不太懂,能否加上代码说明
|
|
|
9楼#
发布于:2004-04-12 15:19
全包加上太包大小就是 IP包内容 ;)
|
|
|
10楼#
发布于:2004-04-12 14:59
请教start:怎样得到ip包的内容?
|
|
|
11楼#
发布于:2004-04-12 14:13
可以
|
|
|