FilterSendNetBufferListsComplete (Compact 2013)

3/26/2014

NDIS calls this function to complete a send request that a filter driver started by calling the NdisFSendNetBufferLists function.

Syntax

VOID
  FilterSendNetBufferListsComplete(
    IN NDIS_HANDLE  FilterModuleContext,
    IN PNET_BUFFER_LIST  NetBufferLists,
    IN  ULONG  SendCompleteFlags
    );

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 pointer to a linked list of NET_BUFFER_LIST structures that the filter driver passed to NdisFSendNetBufferLists.
  • SendCompleteFlags
    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_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL flag which; if set, indicates that the current IRQL is DISPATCH_LEVEL.

Return Value

None

Remarks

FilterSendNetBufferListsComplete 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 FilterSendNetBufferListsComplete function for a filter module.

Note   A filter driver that does not provide a FilterSendNetBufferListsComplete function cannot call the NdisFSendNetBufferLists function.

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

If an overlying driver initiated the send request, the filter driver should call the NdisFSendNetBufferListsComplete function to complete the send request.

If the filter driver originated the send request, FilterSendNetBufferListsComplete can either release the NET_BUFFER_LIST structures and associated data or prepare them for reuse in a subsequent call to NdisFSendNetBufferLists.

A filter driver should keep track of send requests that it initiates and make sure that it does not call NdisFSendNetBufferListsComplete when NDIS calls FilterSendNetBufferListsComplete for such requests.

NDIS calls FilterSendNetBufferListsComplete at IRQL <= DISPATCH_LEVEL.

Requirements

Header

filter.h

See Also

Reference

NDIS Filter Driver Functions
FilterAttach
FilterSetModuleOptions
NdisFRegisterFilterDriver
NdisFSendNetBufferLists
NdisFSendNetBufferListsComplete
NdisSetOptionalHandlers
NET_BUFFER
NET_BUFFER_LIST