This documentation is archived and is not being maintained.

ProtocolReceiveComplete routine

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

The ProtocolReceiveComplete function is a required driver function in any protocol. ProtocolReceiveComplete completes postprocessing of one or more preceding receive indications from a NIC driver.

Syntax


RECEIVE_COMPLETE_HANDLER ProtocolReceiveComplete;

VOID ProtocolReceiveComplete(
  _In_ NDIS_HANDLE ProtocolBindingContext
)
{ ... }

Parameters

ProtocolBindingContext [in]

Specifies the handle to a protocol-allocated context area in which the protocol driver maintains per-binding run-time state. The driver supplied this handle when it called NdisOpenAdapter.

Return value

None

Remarks

ProtocolReceiveComplete performs postprocessing, 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 driver calls NdisM...IndicateReceiveComplete, NDIS calls the ProtocolReceiveComplete function(s) of bound protocol(s). NDIS always calls ProtocolReceiveComplete after one or more calls to the driver's ProtocolReceive function, regardless of whether any particular packet(s) are accepted by bound protocols.

An underlying miniport driver need not make calls to NdisM..IndicateReceive in one-to-one correspondence with its calls to NdisM...IndicateReceiveComplete. ProtocolReceiveComplete is reentrant because the underlying NIC driver sometimes must wait to call NdisM...IndicateReceiveComplete until no receive operations are in progress.

After ProtocolReceiveComplete is called, the underlying NIC 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

Target platform

Desktop

Version

Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Microsoft Windows XP

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

See also

NdisMArcIndicateReceiveComplete
NdisMEthIndicateReceiveComplete
NdisMFddiIndicateReceiveComplete
NdisMCoIndicateReceivePacket
NdisMIndicateReceivePacket
NdisMTrIndicateReceiveComplete
NdisMWanIndicateReceiveComplete
ProtocolCoReceivePacket
ProtocolReceive
ProtocolReceivePacket

 

 

Send comments about this topic to Microsoft

Show: