Поделиться через


OID_RECEIVE_FILTER_ENUM_FILTERS

Избыточный драйвер отправляет запрос метода OID OID_RECEIVE_FILTER_ENUM_FILTERS, чтобы получить список всех фильтров, настроенных для сетевого адаптера.

Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_RECEIVE_FILTER_INFO_ARRAY .

После успешного возврата из запроса метода OID элемент InformationBufferструктуры NDIS_OID_REQUEST содержит указатель на буфер. Этот буфер имеет следующий формат:

  • Структура NDIS_RECEIVE_FILTER_INFO_ARRAY , указывающая список фильтров получения, которые в настоящее время настроены для драйвера мини-порта.

  • Массив структур NDIS_RECEIVE_FILTER_INFO . В каждой структуре указываются параметры фильтра получения, который в настоящее время настроен для драйвера мини-порта.

Комментарии

Фильтры получения NDIS используются в следующих интерфейсах NDIS:

Избыточные драйверы или приложения выдают запросы метода OID OID_RECEIVE_FILTER_ENUM_FILTERS для перечисления фильтров получения, заданных для сетевого адаптера. Сюда входят фильтры получения, которые были заданы для виртуального порта SR-IOV (VPort) или очереди получения VMQ.

Дополнительные рекомендации по интерфейсу объединения пакетов NDIS

Начиная с Windows Server 2012 объединение пакетов NDIS поддерживает только очередь получения сетевого адаптера по умолчанию.

Чтобы перечислить фильтры получения, объединяющие пакеты, драйвер надстроек должен задать для элемента QueueId структуры NDIS_RECEIVE_FILTER_INFO_ARRAY значение NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Дополнительные рекомендации по интерфейсу SR-IOV

Начиная с Windows Server 2012 интерфейс SR-IOV поддерживает только очередь получения виртуального порта (VPort) по умолчанию.

Чтобы перечислить фильтры получения VPort, драйвер с избыточной поддержкой должен задать для элемента QueueId структуры NDIS_RECEIVE_FILTER_INFO_ARRAY значение NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Дополнительные рекомендации по интерфейсу VMQ

Избыточный драйвер может выдавать запросы метода OID OID_RECEIVE_FILTER_ENUM_FILTERS для перечисления фильтров получения, заданных в очереди получения VMQ. Когда драйвер overlying инициализирует структуру NDIS_RECEIVE_FILTER_INFO_ARRAY , он присваивает члену QueueId одно из следующих значений:

  • Значение идентификатора очереди для очереди получения без определенных значений. Драйвер, находящийся выше, получил входное значение идентификатора очереди из предыдущего запроса метода OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE или запроса OID OID_RECEIVE_FILTER_ENUM_QUEUES.

  • Значение идентификатора очереди NDIS_DEFAULT_RECEIVE_QUEUE_ID, указывающее очередь получения по умолчанию.

Коды состояния возврата

NDIS обрабатывает запрос метода OID OID_RECEIVE_FILTER_ENUM_FILTERS для драйверов мини-порта и возвращает один из следующих кодов состояния:

NDIS_STATUS_SUCCESS
Запрос успешно завершен. InformationBuffer указывает на структуру NDIS_RECEIVE_FILTER_INFO_ARRAY.

NDIS_STATUS_PENDING
Запрос ожидает завершения. NDIS передает окончательный код состояния и результаты обработчику завершения запроса OID вызывающего объекта после завершения запроса.

NDIS_STATUS_INVALID_LENGTH
Буфер сведений был слишком коротким. NDIS задает значение DATA. QUERY_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального требуемого размера буфера.

NDIS_STATUS_FAILURE
Сбой запроса по другим причинам.

Требования

Версия

Поддерживается в NDIS 6.20 и более поздних версиях.

Заголовок

Ntddndis.h (включая Ndis.h)

См. также раздел

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