NdisFSendNetBufferListsComplete function

Filter drivers call the NdisFSendNetBufferListsComplete function to return a linked list of NET_BUFFER_LIST structures to an overlying driver and to return the final status of a send request.

Syntax


VOID NdisFSendNetBufferListsComplete(
  _In_  NDIS_HANDLE NdisFilterHandle,
  _In_  PNET_BUFFER_LIST NetBufferLists,
  _In_  ULONG SendCompleteFlags
);

Parameters

NdisFilterHandle [in]

The NDIS handle that identifies this filter module. NDIS passed the handle to the filter driver in a call to the FilterAttach function.

NetBufferLists [in]

A pointer to a linked list of NET_BUFFER_LIST structures. The filter driver received the NET_BUFFER_LIST structures in previous calls to the FilterSendNetBufferLists function.

SendCompleteFlags [in]

NDIS flags that can be combined with an OR operation. To clear all the flags, set this member to zero. This function supports the following flags:

NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL

Specifies that the current IRQL is DISPATCH_LEVEL. For more information about this flag, see Dispatch IRQL Tracking.

NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE

If this flag is set, all packets in a linked list of NET_BUFFER_LIST structures originated from the same Hyper-V extensible switch source port.

For more information, see Hyper-V Extensible Switch Send and Receive Flags.

Note  If each packet in the linked list of NET_BUFFER_LIST structures uses the same source port, the extension should set the NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE flag in the SendFlags parameter of NdisFSendNetBufferLists when it sends the request.

Note  This flag is available in NDIS 6.30 and later.

Return value

None

Remarks

A filter driver calls the NdisFSendNetBufferListsComplete function to complete send requests that NDIS made to the driver's FilterSendNetBufferLists function. The filter driver specifies a linked list of NET_BUFFER_LIST structures that are associated with the completed send requests. While the status of the send requests is pending, the filter driver retains ownership of the NET_BUFFER_LIST structures and all the resources that are associated with the NET_BUFFER_LIST structures.

The filter driver can complete send requests in any order. For example, the filter driver could concatenate the NET_BUFFER_LIST structure lists from multiple FilterSendNetBufferLists calls or split up a list from a FilterSendNetBufferLists call. However, the filter driver must not modify the list of NET_BUFFER structures that are associated with a NET_BUFFER_LIST structure.

Note  A filter driver should keep track of send requests that it originates and make sure that it does not call the NdisFSendNetBufferListsComplete function when such requests are complete.

Requirements

Version

Supported in NDIS 6.0 and later.

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

DDI compliance rules

Irql_Filter_Driver_Function

See also

FilterAttach
FilterSendNetBufferLists
NET_BUFFER
NET_BUFFER_LIST

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft