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


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

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

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

Синтаксис

FWPS_CALLOUT_NOTIFY_FN0 FwpsCalloutNotifyFn0;

NTSTATUS FwpsCalloutNotifyFn0(
  [in] FWPS_CALLOUT_NOTIFY_TYPE notifyType,
  [in] const GUID *filterKey,
  [in] FWPS_FILTER0 *filter
)
{...}

Параметры

[in] notifyType

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

FWPS_CALLOUT_NOTIFY_ADD_FILTER

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

FWPS_CALLOUT_NOTIFY_DELETE_FILTER

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

FWPS_CALLOUT_NOTIFY_TYPE_MAX

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

[in] filterKey

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

[in] filter

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

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

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

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

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

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

Комментарии

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

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

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

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

Требования

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

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

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

FWPS_CALLOUT0

FWPS_FILTER0

FwpsCalloutRegister0

notifyFn

notifyFn1

notifyFn2