ProtocolReceiveComplete (Compact 2013)

3/26/2014

This function is a required driver function in any protocol. ProtocolReceiveComplete completes post-processing of one or more preceding receive indications from a network adapter driver.

Syntax

VOID ProtocolReceiveComplete(
  NDIS_HANDLE ProtocolBindingContext 
);

Parameters

  • ProtocolBindingContext
    [in] Specifies the handle to a protocol-allocated context area in which the protocol driver maintains per-binding runtime state. The driver supplied this handle when it called NdisOpenAdapter.

Return Value

None.

Remarks

ProtocolReceiveComplete performs post-processing, such as notifying interested clients of processed data received from a remote node, after one or more calls to the driver's ProtocolReceive function.

When an underlying miniport calls NdisMXXXIndicateReceiveComplete, NDIS calls the ProtocolReceiveComplete function of bound protocols. NDIS always calls ProtocolReceiveComplete after one or more calls to the driver's ProtocolReceive function, regardless of whether any particular packets are accepted by bound protocols.

An underlying miniport need not make calls to NdisMXXXIndicateReceive in one-to-one correspondence with its calls to NdisMXXXIndicateReceiveComplete. ProtocolReceiveComplete is re-entrant because the underlying network adapter driver sometimes must wait to call NdisMXXXIndicateReceiveComplete until no receive operations are in progress.

After ProtocolReceiveComplete is called, the underlying network adapter driver can make another receive indication before ProtocolReceiveComplete returns control, so ProtocolReceiveComplete can execute concurrently with the driver's ProtocolReceive function in SMP machines.

Requirements

Header

ndis.h

Library

Ndislib.lib

See Also

Reference

NDIS 5.x Legacy Functions
ProtocolReceive
NdisOpenAdapter