VOID
NdisMWanSendComplete(
IN NDIS_HANDLE MiniportAdapterHandle,
IN PNDIS_WAN_PACKET Packet,
IN NDIS_STATUS Status
);
NdisMWanSendComplete returns the packet and final status of a completed send request for which the miniport previously returned NDIS_STATUS_PENDING.
Whenever the MiniportWanSend function returns NDIS_STATUS_PENDING for an incoming packet, the miniport must eventually call NdisMWanSendComplete with a pointer to that packet. When MiniportWanSend returns any NDIS_STATUS_XXX except NDIS_STATUS_PENDING for a given packet, that packet is considered completed as soon as MiniportWanSend returns control.
Calling NdisMWanSendComplete does not necessarily imply that the packet has been transmitted over the network, although usually it has before a miniport calls this function. However, a miniport might call NdisMWanSendComplete as soon as it has successfully programmed its NIC for the transmit operation, particularly if its NIC is a so-called intelligent network card.
NdisMWanSendComplete forwards the completed packet to the ProtocolSendComplete function of the driver that initiated the original send operation. Then, the protocol regains ownership of the packet and all buffers that it allocated for the send.
Callers of NdisMWanSendComplete run at IRQL DISPATCH_LEVEL.
MiniportInitialize, MiniportWanSend, NdisSend, ProtocolSendComplete