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