FilterReturnNetBufferLists (Compact 2013)

3/26/2014

NDIS calls this function to return a linked list of NET_BUFFER_LIST structures and associated data to a filter driver.

Syntax

VOID
  FilterReturnNetBufferLists(
    IN NDIS_HANDLE  FilterModuleContext,
    IN PNET_BUFFER_LIST  NetBufferLists,
    IN  ULONG  ReturnFlags
    );

Parameters

  • FilterModuleContext
    A handle to the context area for the filter module. The filter driver created and initialized this context area in the FilterAttach function.
  • NetBufferLists
    A linked list of NET_BUFFER_LIST structures that the filter driver indicated by calling the NdisFIndicateReceiveNetBufferLists function. The list can include NET_BUFFER_LIST structures from multiple calls to NdisFIndicateReceiveNetBufferLists.
  • ReturnFlags
    NDIS flags that can be combined with an OR operation. To clear all the flags, set this member to zero. This function supports the NDIS_RETURN_FLAGS_DISPATCH_LEVEL flag which; if set, indicates that the current IRQL is DISPATCH_LEVEL.

Return Value

None

Remarks

FilterReturnNetBufferLists is an optional function. If a filter driver does not filter send requests, it can set the entry point for this function to NULL when it calls the NdisFRegisterFilterDriver function.

The filter driver can call the NdisSetOptionalHandlers function, from the FilterSetModuleOptions function, to specify a FilterReturnNetBufferLists function for a filter module.

Note

A filter driver that does not provide a FilterReturnNetBufferLists function cannot call the NdisFIndicateReceiveNetBufferLists function to initiate a receive indication. A filter driver that does provide a FilterReturnNetBufferLists function must provide a FilterStatus function

When NDIS calls FilterReturnNetBufferLists, the filter driver regains ownership of the NET_BUFFER_LIST structures and associated data.

If an underling driver initiated the receive indication, the filter driver should call the NdisFReturnNetBufferLists function to complete the receive indication.

If the filter driver originated the receive indication, FilterReturnNetBufferLists can either release the NET_BUFFER_LIST structures and associated data or prepare them for reuse in a later call to NdisFIndicateReceiveNetBufferLists.

A filter driver should keep track of receive indications that it initiates and make sure that it does not call NdisFReturnNetBufferLists when NDIS calls FilterReturnNetBufferLists.

NDIS calls FilterReturnNetBufferLists at IRQL <= DISPATCH_LEVEL.

Requirements

Header

filter.h

See Also

Reference

NDIS Filter Driver Functions
FilterAttach
FilterSetModuleOptions
FilterStatus
NdisFIndicateReceiveNetBufferLists
NdisFRegisterFilterDriver
NdisFReturnNetBufferLists
NdisSetOptionalHandlers
NET_BUFFER
NET_BUFFER_LIST