阅读:1827回复:1
Ndis(Co)IndicateReceive为什么这么费劲?
The miniport passes status ― possibly the time a packet is received, possibly the time a packet was sent, and possibly other media-specific information ― to upper-layers by setting members in the out-of-band (OOB) data block associated with each packet descriptor. If the miniport is willing to allow a protocol to (1)keep the packet and return it later to the miniport's MiniportReturnPacket function, the miniport must set the Status member of the OOB block to NDIS_STATUS_SUCCESS. (2)If the miniport is running short of free packet descriptors or buffers and wants to force any interested upper layer driver to copy the packet data before NdisM(Co)IndicateReceivePacket returns,the miniport must set the Status member to NDIS_STATUS_RESOURCES.-2KDDK。
(1) (2)处是我的两个问题 (1) 包既然都给了协议驱动,干吗还要协议驱动返回给小端口 (2)是否是在说包描述符,和缓冲区是有限的资源,如果满了,则必须要求协议驱动赶快去走? 望不吝赐教! |
|
最新喜欢:ljmmar... |
沙发#
发布于:2001-07-27 11:27
(1)正常情况下miniport调用NdisMIndicateReceivePacket后packet的所有权就不在miniport了,Miniport不能再对packet进行任何操作,比方说回收packet....,miniport只有在接到MiniportReturnPacket调用时才能取回对packet的控制,对其进行操作
(2)如果packet设置Status为NDIS_STATUS_RESOURCES 则意味着miniport在调用NdisMIndicateReceivePacket后将立刻回收packet descriptor 通常发生在packet descriptor 资源短缺的情况 |
|
|