функция обратного вызова 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 выноски возвращает один из следующих кодов 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 |