Previous Next

NdisMTransferDataComplete

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

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

Parameters

MiniportAdapterHandle
Specifies the handle originally input to MiniportInitialize.
Packet
Pointer 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.

Headers

Declared in Ndis.h. Include Ndis.h.

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 driver 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