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