阅读:1550回复:2
落后者加油!望各大虾帮忙!!
小弟对NTDDK的PACKET程序有点疑惑:
有 PacketReceiveIndicate函数(挂接ReceiveHandler); PacketReceivePacket函数(挂接ReceivePacketHandler)。 这两个函数中需要处理的功能有什么不同? 小弟主要是不懂既然用 NdisTransferData()函数把PACKET传入 用 NdisMoveMappedMemory和IoAllocateMdl、IoBuildPartialMdl把Irp中的MEM转化的MDL中,为什么在PacketReceivePacket中又用NdisCopyFromPacketToPacket把PACKET又拷贝一次? 小弟不懂! |
|
|
沙发#
发布于:2001-09-29 15:33
ReceiveHandler
This is a required function. ProtocolReceive is called with a pointer to a lookahead buffer. If this buffer contains less than the full, received network packet, ProtocolReceive calls NdisTransferData with a protocol-allocated packet descriptor specifying protocol-allocated buffer(s) to obtain the remainder of the received packet. ReceivePacketHandler This is an optional function. A ProtocolReceivePacket function should be provided if the protocol driver might be bound to a NIC driver that indicates an array of one or more packets by calling NdisMIndicateReceivePacket 以上是ddk文档的原文, 第二个函数只是在NICdriver管理一个总线dma适配器或者支持带外数据时被ndis调用 |
|
板凳#
发布于:2001-09-30 14:06
谢谢楼上那位大兄!!令小弟茅塞顿开!
其实小弟也看了DDK文档,只是总觉得不塌实。谢谢!! |
|
|