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


OID_RECEIVE_FILTER_CLEAR_FILTER

Чрезмерные драйверы выдают запросы на настройку OID OID_RECEIVE_FILTER_CLEAR_FILTER для очистки фильтра получения в сетевом адаптере.

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

Комментарии

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

Запрос набора OID OID_RECEIVE_FILTER_CLEAR_FILTER является обязательным для драйверов мини-портов, поддерживающих объединение пакетов NDIS, SR-IOV или VMQ.

Для очистки ранее заданного фильтра драйвер, например драйвер протокола NDIS или фильтра, использует запрос OID_RECEIVE_FILTER_CLEAR_FILTER set. Очистить его может только драйвер, задал фильтр получения.

Драйвер overlying очищает фильтр получения, задавая для элемента FilterId структуры NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS идентификатор фильтра. Драйвер получил идентификатор фильтра из предыдущего запроса метода OID OID_RECEIVE_FILTER_SET_FILTER.

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

Следующий момент относится к драйверам miniport и overlying, поддерживающим объединение пакетов NDIS:

  • Перед отменой привязки или отсоединения от него драйвер должен очистить все фильтры получения, заданные в драйвере мини-порта.

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

Следующие моменты относятся к мини-портам и драйверам overlying, поддерживающим интерфейс SR-IOV.

  • Прежде чем освободить VPort, драйвер должен очистить все фильтры, заданные в SR-IOV VPort. Прежде чем закрыть привязку к сетевому адаптеру, драйвер должен очистить все фильтры, заданные в VPort по умолчанию.

  • Драйвер мини-порта не должен указывать пакеты в неразрушаемом VPort, если он завершил запрос OID OID_RECEIVE_FILTER_CLEAR_FILTER для очистки последнего фильтра в VPort.

    Примечание Драйвер мини-порта также не должен указывать пакеты в нестандартном VPort, если он завершил запрос OID OID_NIC_SWITCH_DELETE_VPORT для освобождения VPort.

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

Следующие моменты относятся к мини-портам и драйверам, поддерживающим интерфейс VMQ.

  • Прежде чем освободить очередь, драйвер должен очистить все фильтры, заданные в очереди получения VMQ. Прежде чем закрыть привязку к сетевому адаптеру, драйвер должен очистить все фильтры, заданные в очереди по умолчанию.

  • Драйвер мини-порта не должен указывать пакеты в очереди получения, если он завершил запрос OID OID_RECEIVE_FILTER_CLEAR_FILTER для очистки последнего фильтра в очереди получения.

    Примечание Драйвер мини-порта также не должен указывать пакеты в очереди получения, если он завершил запрос OID OID_RECEIVE_FILTER_FREE_QUEUE для освобождения очереди получения.

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

Функция MiniportOidRequest драйвера miniport возвращает одно из следующих значений для этого запроса:

Термин Описание

NDIS_STATUS_SUCCESS

Драйвер мини-порта успешно выполнил запрос.

NDIS_STATUS_PENDING

Драйвер мини-порта выполнит запрос асинхронно. После того как драйвер мини-порта завершит всю обработку, он должен выполнить запрос, вызвав функцию NdisMOidRequestComplete , передав NDIS_STATUS_SUCCESS для параметра Status .

NDIS_STATUS_NOT_ACCEPTED

Адаптер мини-порта был неожиданно удален.

NDIS возвращает один из следующих кодов состояния для этого запроса:

NDIS_STATUS_SUCCESS
Указанный фильтр успешно очищен.

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

NDIS_STATUS_FILE_NOT_FOUND
Недопустимый идентификатор фильтра.

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

Требования

Версия

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

Заголовок

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

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

NDIS_OID_REQUEST

NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS

OID_NIC_SWITCH_DELETE_VPORT

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_SET_FILTER