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

Обработчик фильтров вызывает функцию выноски notifyFn2 выноски, чтобы уведомить драйвер выноски о событиях, связанных с выноской.

ПримечаниеnotifyFn2 — это конкретная версия notifyFn, используемая в Windows 8 и более поздних версиях. Дополнительные сведения см. в разделах ИМЕНА Version-Independent ВПП и Выбор конкретных версий Windows . Для Windows 7 доступна функция notifyFn1 . В Windows Vista доступна функция notifyFn0 .

 

Синтаксис

FWPS_CALLOUT_NOTIFY_FN2 FwpsCalloutNotifyFn2;

NTSTATUS FwpsCalloutNotifyFn2(
  [in]      FWPS_CALLOUT_NOTIFY_TYPE notifyType,
  [in]      const GUID *filterKey,
  [in, out] FWPS_FILTER2 *filter
)
{...}

Параметры

[in] notifyType

Значение типа , указывающее тип уведомления, которое обработчик фильтров отправляет в выноску. Допустимые значения для этого параметра:

FWPS_CALLOUT_NOTIFY_ADD_FILTER

В обработчик фильтров добавляется фильтр, указывающий выноску для действия фильтра.

FWPS_CALLOUT_NOTIFY_DELETE_FILTER

Фильтр удаляется из обработчика фильтров, который задает выноску для действия фильтра.

FWPS_CALLOUT_NOTIFY_TYPE_MAX

Максимальное значение для целей тестирования.

[in] filterKey

Указатель на идентификатор управления для фильтра, заданный приложением или драйвером, который добавляет или удаляет фильтр. Значение должно иметь значение NULL, если параметр notifyType имеет значение FWPS_CALLOUT_NOTIFY_DELETE_FILTER. Дополнительные сведения см. в разделе "Примечания".

[in, out] filter

Указатель на структуру FWPS_FILTER2 . Эта структура описывает фильтр, который добавляется в подсистему фильтров или удаляется из нее.

Функция notifyFn2 драйвера выноски может задать элемент Context этой структуры, указывающий на структуру контекста, предоставленную драйвером выноски, при добавлении фильтра в подсистему фильтрации. Эта структура контекста является непрозрачной для подсистемы фильтрации и может использоваться функцией выноски classifyFn2 драйвера выноски для сохранения любых данных или сведений о состоянии драйвера между вызовами подсистемы фильтрации к драйверу выноски
функция выноски classifyFn2.

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

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

Функция notifyFn2 выноски возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Драйвер выноски принимает уведомление от обработчика фильтров.
Другие коды состояния
Произошла ошибка. Если параметр notifyType имеет FWPS_CALLOUT_NOTIFY_ADD_FILTER, фильтр не будет добавлен в подсистему фильтров. Если параметр notifyType FWPS_CALLOUT_NOTIFY_DELETE_FILTER, фильтр по-прежнему будет удален из подсистемы фильтров.

Комментарии

Драйвер выноски регистрирует функции выноски в обработчике фильтров, вызывая функцию FwpsCalloutRegister2 .

Модуль фильтрации вызывает функцию notifyFn2 драйвера выноски, чтобы уведомить драйвер выноски о событиях, связанных с выноской. Если функция notifyFn2 драйвера выноски не распознает тип уведомления, передаваемого в параметре notifyType , она должна игнорировать уведомление и возвращать STATUS_SUCCESS.

Если драйвер выноски регистрирует выноску в обработчике фильтров после того, как фильтры, указывающие выноску для действия фильтра, уже были добавлены в подсистему фильтров, подсистема фильтров не вызывает функцию notifyFn2 драйвера выноски, чтобы уведомить выноску о существующих фильтрах. Подсистема фильтров вызывает функцию notifyFn2 драйвера выноски, чтобы уведомить выноску о добавлении новых фильтров, указывающих выноску для действия фильтра. В этом случае функция notifyFn2 выноски может не вызываться для каждого фильтра в обработчике фильтров, который задает выноску для действия фильтра. Если драйвер выноски регистрирует выноску после запуска обработчика фильтров и выноска должна знать о каждом фильтре в механизме фильтрации, который указывает выноску для действия фильтра, драйвер выноски должен вызвать соответствующие функции управления для перечисления всех фильтров в подсистеме фильтров и отсортировать полученный список фильтров, чтобы найти те, которые указывают выноску для действия фильтра. Дополнительные сведения о вызове этих функций см. в статье Вызов других функций платформы фильтрации Windows .

Когда фильтр, указывающий выноску для действия фильтра, удаляется из подсистемы фильтров, обработчик фильтров вызывает функцию notifyFn2 драйвера выноски и передает FWP_CALLOUT_NOTIFY_DELETE_FILTER в параметре notifyType и NULL в параметре filterKey . Дополнительные сведения см. в разделе Обработка выносок уведомления.

Эта функция по существу идентична предыдущей версии notifyFn1. Единственным отличием является обновленная структура FWPS_FILTER2 , на которую указывает параметр фильтра .

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Windows
Header fwpsk.h (включая Fwpsk.h)
IRQL <= DISPATCH_LEVEL

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

Функции выноски драйвера выноски

FWPS_FILTER2

FwpsCalloutRegister2

notifyFn

notifyFn0

notifyFn1