FilterReturnNetBufferLists (Compact 7)
3/12/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