функция обратного вызова FILTER_SET_MODULE_OPTIONS (ndis.h)

Функция FilterSetModuleOptions изменяет набор необязательных служб, связанных с указанным модулем фильтра.

Примечание Функцию необходимо объявить с помощью типа FILTER_SET_MODULE_OPTIONS . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

FILTER_SET_MODULE_OPTIONS FilterSetModuleOptions;

NDIS_STATUS FilterSetModuleOptions(
  [in] NDIS_HANDLE FilterModuleContext
)
{...}

Параметры

[in] FilterModuleContext

Дескриптор области контекста для модуля фильтра, который является целевым объектом этого запроса. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .

Возвращаемое значение

FilterSetModuleOptions возвращает одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS
FilterSetModuleOptions успешно зарегистрировал дополнительные службы и ресурсы модуля фильтра.
NDIS_STATUS_RESOURCES
FilterSetModuleOptions не удалось выделить ресурсы, необходимые модулю фильтра.
NDIS_STATUS_ XXX или NTSTATUS_ XXX
Попытка драйвера фильтра зарегистрировать параметры завершилась сбоем. Обычно такое состояние ошибки распространяется из функции NdisXxx или подпрограммы поддержки режима ядра.

Комментарии

Если параметр FilterSetModuleOptions определен, NDIS вызывает FilterSetModuleOptions перед вызовом функции FilterRestart для запуска модуля фильтра.

Драйвер фильтра задает значения по умолчанию для параметров изменяемого модуля фильтра в структуре NDIS_FILTER_DRIVER_CHARACTERISTICS, которая передается вФункция NdisFRegisterFilterDriver во время инициализации драйвера.

Чтобы изменить параметры для определенного модуля фильтра во время выполнения, драйвер фильтра также должен указать точку входа для FilterSetModuleOptions в NDIS_FILTER_DRIVER_CHARACTERISTICS структура.

Чтобы указать параметры, которые необходимо изменить, FilterSetModuleOptions определяет структуру характеристик и вызывает функцию NdisSetOptionalHandlers . Драйверы фильтров не должны вызывать NdisSetOptionalHandlers из другого потока.

Возможные структуры характеристик, которые можно указать из FilterSetModuleOptions :

NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

Сведения о последних четырех структурах см. в документации по разгрузке дымохода TCP NDIS 6.0.

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

Когда NDIS вызывает функцию FilterDetach , драйвер фильтра должен отменить все операции, выполненные в FilterSetModuleOptions.

NDIS вызывает FilterSetModuleOptions в IRQL = PASSIVE_LEVEL.

Примеры

Чтобы определить функцию FilterSetModuleOptions , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию FilterSetModuleOptions с именем MySetModuleOptions, используйте тип FILTER_SET_MODULE_OPTIONS , как показано в этом примере кода:

FILTER_SET_MODULE_OPTIONS MySetModuleOptions;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
NDIS_STATUS
 MySetModuleOptions(
    NDIS_HANDLE  FilterModuleContext
    )
  {...}

Тип функции FILTER_SET_MODULE_OPTIONS определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции FILTER_SET_MODULE_OPTIONS в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье О поведении функции.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL PASSIVE_LEVEL

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

FilterRestart

NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_FILTER_DRIVER_CHARACTERISTICS

NdisFRegisterFilterDriver

NdisSetOptionalHandlers