функция обратного вызова FILTER_SET_MODULE_OPTIONS (ndis.h)
Функция FilterSetModuleOptions изменяет набор необязательных служб, связанных с указанным модулем фильтра.
Синтаксис
FILTER_SET_MODULE_OPTIONS FilterSetModuleOptions;
NDIS_STATUS FilterSetModuleOptions(
[in] NDIS_HANDLE FilterModuleContext
)
{...}
Параметры
[in] FilterModuleContext
Дескриптор области контекста для модуля фильтра, который является целевым объектом этого запроса. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .
Возвращаемое значение
FilterSetModuleOptions возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
FilterSetModuleOptions успешно зарегистрировал дополнительные службы и ресурсы модуля фильтра. |
|
FilterSetModuleOptions не удалось выделить ресурсы, необходимые модулю фильтра. |
|
Попытка драйвера фильтра зарегистрировать параметры завершилась сбоем. Обычно такое состояние ошибки распространяется из функции 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 |
См. также раздел
NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_FILTER_DRIVER_CHARACTERISTICSОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по