阅读:1982回复:4
以前Songzh兄发的帖子《修改PtReceive和PtTransferDataComplete,实现过滤ICMP的代码》的代码中有些不明白得请大家给解释一下,谢谢先帖子代码里函数PtTransferDataComplete实现中有: 。。。。。。。。。。。。。 NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;//有什莫作用? NDIS_STATUS status = NDIS_STATUS_SUCCESS; HighestAcceptableAddress.LowPart = -1; //不明白啊? HighestAcceptableAddress.HighPart = -1; DbgPrint(\"==>PtTransferDataComplete(...)\\n\"); Resvd = (PRSVD)(Packet->MiniportReserved);//不明白意思? OffsetPacket = (PNDIS_PACKET)Resvd->OriginalPkt; 。。。。。。。。。。。。。 NdisUnchainBufferAtFront(OffsetPacket, &OffsetBuffer); NdisQueryBufferSafe(OffsetBuffer, &pBakContent1, &bufLength1, 32);//NdisQueryBuffer在ddk中的解释我看了,可还是不明白函数到底从buffer descriptor得到什莫了,并且有什莫作用? 。。。。。。。。。。。。。 if((((char*)pPacketContent)[12] == 8) && (((char*)pPacketContent)[13] == 0) && (((char*)pPacketContent)[23] == 1))//是什莫的原理能够判断出是icmp包? 。。。。。。。。。。。。。 |
|
沙发#
发布于:2004-07-19 21:56
搞错了,后来行了
|
|
板凳#
发布于:2003-10-26 11:24
NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;//有什莫作用? 我在用PtReceivePacket接收到的包在mac地址前有一大段东西 其长度不固定,请问这是什么原因,我怎么能判断mac地址字段从哪里开始的?谢谢 [编辑 - 10/26/03 by birdtomaster] |
|
地板#
发布于:2003-10-24 22:11
NDIS_BUFFER就是MDL
千万不要问我什么是MDL |
|
地下室#
发布于:2003-10-24 21:14
NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;//有什莫作用?
------------------ 到DDK看NdisAllocateMemory的说明。要用到。 Resvd = (PRSVD)(Packet->MiniportReserved);//不明白意思? OffsetPacket = (PNDIS_PACKET)Resvd->OriginalPkt; -------------------------- MiniportReserved和ProtocolReserved都是reserved,就是说给你自己用的。在这里,来保存原来的packet。 NdisQueryBufferSafe(OffsetBuffer, &pBakContent1, &bufLength1, 32);//NdisQueryBuffer在ddk中的解释我看了,可还是不明白函数到底从buffer descriptor得到什莫了,并且有什莫作用? ----------------------- NDIS_BUFFER,你就当是memory pointer,通过NdisQueryBufferSafe得到memory的地址和长度。 ))//是什莫的原理能够判断出是icmp包? -------------------- TCP/IP详解第一卷,第一章 |
|