NdisMWanSendComplete function

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

NdisMWanSendComplete returns the packet and final status of a completed send request for which the miniport driver previously returned NDIS_STATUS_PENDING.


VOID NdisMWanSendComplete(
  _In_ NDIS_HANDLE      MiniportAdapterHandle,
  _In_ NDIS_STATUS      Status


  • MiniportAdapterHandle [in]
    Specifies the handle originally input to MiniportInitialize.

  • Packet [in]
    Pointer to the protocol-supplied packet originally passed in to the MiniportWanSend function.

  • Status [in]
    Specifies the NDIS_STATUS_XXX code describing the outcome of the completed send operation, either NDIS_STATUS_SUCCESS or a miniport driver-determined error status value.

Return value



Whenever the MiniportWanSend function returns NDIS_STATUS_PENDING for an incoming packet, the miniport driver 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 driver calls this function. However, a miniport driver 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.

A miniport driver must release any spin lock that it is holding before calling NdisMWanSendComplete.

Serialized callers of NdisMWanSendComplete must run at IRQL = DISPATCH_LEVEL. Deserialized callers of NdisMWanSendComplete must run at IRQL <= DISPATCH_LEVEL.


Target platform



Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP.


Ndis.h (include Ndis.h)




See Remarks section

See also







Send comments about this topic to Microsoft