VOID
NdisMWanIndicateReceiveComplete(
IN NDIS_HANDLE MiniportAdapterHandle
);
NdisMWanIndicateReceiveComplete notifies NDISWAN that one or more receives have been completed so that NDISWAN can notify the appropriate bound protocol(s).
After any WAN receive indication, a miniport must eventually call NdisMWanIndicateReceiveComplete.
NdisMWanIndicateReceiveComplete both indicates the completion of a transfer operation for a receive and notifies any bound protocol that has already consumed the initial indication that it can begin postprocessing the received data.
When a miniport calls NdisMWanIndicateReceiveComplete, NDISWAN calls the ProtocolReceiveComplete function(s) of bound protocol driver(s). ProtocolReceiveComplete functions need not operate under the severe time constraints of the corresponding ProtocolReceive functions.
A WAN miniport need not call NdisMWanIndicateReceiveComplete in one-to-one correspondence with its calls to NdisMWanIndicateReceive. That is, a NIC driver can issue a single receive-complete indication for some number of receive indications, particularly when a sequence of receives is coming in to its NIC. Such a driver can call NdisMWanIndicateReceiveComplete after several calls to NdisMWanIndicateReceive have occurred, thereby giving bound protocols the opportunity to notify clients of received packets without incurring the overhead of processing one-to-one completion notifications. As a general rule, a miniport should call NdisMWanIndicateReceiveComplete once for every ten receive indications when network traffic is high.
On the other hand, a miniport might call NdisMWanIndicateReceiveComplete once for each indication when network traffic is low so that the driver can regain ownership of the memory it allocated for receives promptly.
A ProtocolReceive function is re-entrant, and ProtocolReceiveComplete can run concurrently with ProtocolReceive, particularly in SMP machines.
Callers of NdisMWanIndicateReceiveComplete run at IRQL DISPATCH_LEVEL.
MiniportInitialize, NdisMWanIndicateReceive, ProtocolReceive, ProtocolReceiveComplete