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.
Syntax
VOID NdisMWanSendComplete(
_In_ NDIS_HANDLE MiniportAdapterHandle,
_In_ PNDIS_WAN_PACKET Packet,
_In_ NDIS_STATUS Status
);
Parameters
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
None
Remarks
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.
Requirements
Target platform |
Universal |
Version |
Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP. |
Header |
Ndis.h (include Ndis.h) |
Library |
Ndis.lib |
IRQL |
See Remarks section |
See also