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.
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.
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.
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.
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.
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.
NDIS handles the OID method request of OID_RECEIVE_FILTER_ENUM_FILTERS for miniport drivers, and returns one of the following status codes:
The request completed successfully. The InformationBuffer points to an NDIS_RECEIVE_FILTER_INFO_ARRAY structure.
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.
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.
The request failed for other reasons.
|Supported in NDIS 6.20 and later.|