FddiFilterIndicateReceive

VOID
    FddiFilterIndicateReceive(
        IN PFDDI_FILTER  Filter,
        IN NDIS_HANDLE  MacReceiveContext,
        IN PCHAR  Address,
        IN UINT  AddressLength,
        IN PVOID  HeaderBuffer,
        IN UINT  HeaderBufferSize,
        IN PVOID  LookaheadBuffer,
        IN UINT  LookaheadBufferSize,
        IN UINT  PacketSize
        );

FddiFilterIndicateReceive is called by a NIC driver to indicate a received packet to all filter library database bindings associated with an FDDI address.

Parameters

Filter
Points to a previously created and initialized filter library database.
MacReceiveContext
Specifies a context that the NIC driver associates with a packet received from the network.
Address
Points to the destination address that the NIC driver has already extracted from the received packet.
AddressLength
Specifies the length, in bytes, of the destination address.
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
Indicates the length, in bytes, of the packet header.
LookaheadBuffer
Points to the virtual address of the virtually contiguous buffer containing the first bytes of packet data. The packet buffer is valid only for the current call to this function.
LookaheadBufferSize
Specifies the size, in bytes, of the lookahead buffer.
PacketSize
Specifies the size, in bytes, of the received packet data. This number has nothing to do with the lookahead buffer. It indicates the size of the received packet data so that a protocol driver can call NdisTransferData to transfer the data in the packet, as necessary. The data length does not include the packet header length.

Comments

Instead of calling NdisIndicateReceive without filtering, the NIC driver calls FddiFilterIndicateReceive to filter a received packet so that only the appropriate bindings receive it. FddiFilterIndicateReceive then calls the ProtocolReceive function for each protocol driver to which the binding filter applies.

In its calls to ProtocolReceive, FddiFilterIndicateReceive passes each protocol driver a pointer to the packet header and a pointer to some or all of the packet data. The protocol driver can: inspect the header and data in the packet; optionally copy as much of the header or data as is visible; or optionally call NdisTransferData to instruct the NIC driver to copy the data into a protocol-supplied packet.

Callers of FddiFilterIndicateReceive run at IRQL <= DISPATCH_LEVEL.

See Also

FddiFilterIndicateReceiveComplete, MacTransferData, NdisIndicateReceive, NdisTransferData, ProtocolReceive