NdisMTransferDataComplete

VOID
    NdisMTransferDataComplete(
        IN
 NDIS_HANDLE MiniportAdapterHandle,
        IN PNDIS_PACKET Packet,
        IN NDIS_STATUS Status,
        IN UINT BytesTransferred
        );

NdisMTransferDataComplete returns the packet and completion status for a transfer-data request for which the miniport previously returned NDIS_STATUS_PENDING.

Parameters

MiniportAdapterHandle
Specifies the handle originally input to MiniportInitialize.
Packet
Points to the protocol-allocated packet for which MiniportTransferData previously returned NDIS_STATUS_PENDING.
Status
Specifies the final NDIS_STATUS_XXX for the just completed transfer-data request.
BytesTransferred
Specifies the number of bytes actually transferred to the packet.

Comments

Whenever MiniportTransferData returns NDIS_STATUS_PENDING for a given packet, the driver must call NdisMTransferDataComplete when it has finished copying the requested data into that packet or must fail the request.

A miniport that indicates receives with NdisMIndicateReceivePacket never calls NdisMTransferDataComplete because such a driver always indicates full packets up to higher-level drivers.

Miniports that report their NIC’s media type as NdisMediumArcnet878_2 also do not call NdisMTransferDataComplete. NDIS copies all packet data such a driver indicates.

Callers of NdisMTransferDataComplete run at IRQL DISPATCH_LEVEL.

See Also

MiniportInitialize, MiniportReturnPacket, MiniportTransferData, NdisAllocatePacket, NdisMIndicateReceivePacket, NdisTransferData, ProtocolReceive, ProtocolReceivePacket