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:

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_OID_REQUEST

NDIS_RECEIVE_FILTER_INFO

NDIS_RECEIVE_FILTER_INFO_ARRAY

OID_RECEIVE_FILTER_ALLOCATE_QUEUE

OID_RECEIVE_FILTER_ENUM_QUEUES

OID_RECEIVE_FILTER_SET_FILTER