OID_RECEIVE_FILTER_ENUM_FILTERS
An overlying driver issues an OID method request of OID_RECEIVE_FILTER_ENUM_FILTERS to obtain a list of all the filters that are configured on a network adapter.
The InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_RECEIVE_FILTER_INFO_ARRAY structure.
After a successful return from the OID method request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to a buffer. This buffer is formatted to contain the following:
An NDIS_RECEIVE_FILTER_INFO_ARRAY structure that specifies a list of receive filters that are currently configured on a miniport driver.
An array of NDIS_RECEIVE_FILTER_INFO structures. Each structure specifies the parameters of a receive filter that is currently configured on a miniport driver.
Remarks
NDIS receive filters are used in the following NDIS interfaces:
NDIS Packet Coalescing. For more information about how to use receive filters in this interface, see Managing Packet Coalescing Receive Filters.
Single Root I/O Virtualization (SR-IOV). For more information about how to use receive filters in this interface, see Setting a Receive Filter on a Virtual Port.
Virtual Machine Queue (VMQ). For more information about how to use receive filters in this interface, see Setting and Clearing VMQ Filters.
Overlying drivers or applications issue OID method requests of OID_RECEIVE_FILTER_ENUM_FILTERS to enumerate the receive filters that were set on a network adapter. This includes receive filters that were set on an SR-IOV virtual port (VPort) or a VMQ receive queue.
Additional Guidelines for the NDIS Packet Coalescing Interface
Starting with Windows Server 2012, NDIS packet coalescing only supports the default receive queue of a network adapter.
To enumerate the packet coalescing receive filters, the overlying driver must set the QueueId member of the NDIS_RECEIVE_FILTER_INFO_ARRAY structure to NDIS_DEFAULT_RECEIVE_QUEUE_ID.
Additional Guidelines for the SR-IOV Interface
Starting with Windows Server 2012, the SR-IOV interface only supports the default receive queue of a virtual port (VPort).
To enumerate the VPort receive filters, the overlying driver must set the QueueId member of the NDIS_RECEIVE_FILTER_INFO_ARRAY structure to NDIS_DEFAULT_RECEIVE_QUEUE_ID.
Additional Guidelines for the VMQ Interface
An overlying driver can issue OID method requests of OID_RECEIVE_FILTER_ENUM_FILTERS to enumerate the receive filters that were set on a VMQ receive queue. When the overlying driver initializes the NDIS_RECEIVE_FILTER_INFO_ARRAY structure, it sets the QueueId member to one of the following values:
The queue identifier value for a nondefault receive queue. The overlying driver obtained the queue identifier input value from an earlier OID method request of OID_RECEIVE_FILTER_ALLOCATE_QUEUE or an OID query request of OID_RECEIVE_FILTER_ENUM_QUEUES.
The queue identifier value of NDIS_DEFAULT_RECEIVE_QUEUE_ID, which specifies the default receive queue.
Return status codes
NDIS handles the OID method request of OID_RECEIVE_FILTER_ENUM_FILTERS for miniport drivers, and returns one of the following status codes:
NDIS_STATUS_SUCCESS
The request completed successfully. The InformationBuffer points to an NDIS_RECEIVE_FILTER_INFO_ARRAY structure.
NDIS_STATUS_PENDING
The request is pending completion. NDIS passes the final status code and results to the OID request completion handler of the caller after the request has completed.
NDIS_STATUS_INVALID_LENGTH
The information buffer was too short. NDIS set the DATA.QUERY_INFORMATION.BytesNeeded member in the NDIS_OID_REQUEST structure to the minimum buffer size that is required.
NDIS_STATUS_FAILURE
The request failed for other reasons.
Requirements
Version |
Supported in NDIS 6.20 and later. |
Header |
Ntddndis.h (include Ndis.h) |
See also
NDIS_RECEIVE_FILTER_INFO_ARRAY
OID_RECEIVE_FILTER_ALLOCATE_QUEUE