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


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

Версия 3 функции, вызываемая во время классификации при совпадении фильтра выноски. Разница в том, что этот обратный вызов возвращает FWPS_FILTER3 структуру.

Синтаксис

FWPS_CALLOUT_NOTIFY_FN3 FwpsCalloutNotifyFn3;

NTSTATUS FwpsCalloutNotifyFn3(
  FWPS_CALLOUT_NOTIFY_TYPE notifyType,
  const GUID *filterKey,
  FWPS_FILTER3 *filter
)
{...}

Параметры

notifyType

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

  • FWPS_CALLOUT_NOTIFY_ADD_FILTER: фильтр добавляется в обработчик фильтров, указывающий выноску для действия фильтра.
  • FWPS_CALLOUT_NOTIFY_DELETE_FILTER: фильтр удаляется из обработчика фильтров, указывающего выноску для действия фильтра.
  • FWPS_CALLOUT_NOTIFY_TYPE_MAX: максимальное значение для тестирования.

filterKey

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

filter

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

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

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

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

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

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

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
заголовка fwpsk.h
IRQL <= DISPATCH_LEVEL

См. также