NdisIndicateReceive

VOID
    NdisIndicateReceive(
        OUT PNDIS_STATUS  Status,
        IN NDIS_HANDLE  NdisBindingContext,
        IN NDIS_HANDLE  MacReceiveContext,
        IN PVOID  HeaderBuffer,
        IN UINT  HeaderBufferSize,
        IN PVOID  LookaheadBuffer,
        IN UINT  LookaheadBufferSize,
        IN UINT  PacketSize
        );

NdisIndicateReceive is called by the NIC driver to forward a receive indication to a bound protocol driver.

Parameters

Status
Points to the caller-supplied variable in which this function returns the final status of the receive operation. Possible values are:

NDIS_STATUS_NOT_ACCEPTED
NDIS_STATUS_RESOURCES
NDIS_STATUS_SUCCESS

NdisBindingContext
Specifies the context that the NDIS interface library associates with the binding.
MacReceiveContext
Specifies the context that the NIC driver associates with a packet received from the network.
HeaderBuffer
Points to the virtual address of the virtually contiguous buffer containing the packet header. The buffer is valid only within the current call to this function.
HeaderBufferSize
Specifies the length, in bytes, of the packet header.
LookaheadBuffer
Points to the virtual address of the virtually contiguous buffer containing the first LookaheadBufferSize bytes of the packet data (or less if the packet data size is shorter). The buffer is valid only within the current call to this function. (All NIC drivers must be able to support at least 256 bytes of lookahead data.)
LookaheadBufferSize
Specifies the size, in bytes, of the lookahead buffer. The NIC driver ensures this number is at least as large as the size set in a call to the NIC driver’s  MacRequest function or the size of the packet, whichever value is smaller. If the packet size is smaller than the lookahead size, the lookahead buffer contains the entire packet.
PacketSize
Specifies the size, in bytes, of the packet data. This number has nothing to do with the lookahead buffer, but indicates the size of the packet data so the protocol driver can make subsequent calls to NdisTransferData to transfer the entire packet as necessary.The packet length does not include the header length.

Comments

To deliver the indication, this function calls the ProtocolReceive function of the driver identified by the given handle at NdisBindingContext.

Callers of NdisIndicateReceive run at IRQL <= DISPATCH_LEVEL.

See Also

MacRequest, MacTransferData, NdisTransferData, ProtocolReceive