Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсистема фильтрации вызывает функцию выноски notifyFn0 выноски, чтобы уведомить драйвер выноски о событиях, связанных с выноской.
Примечание
notifyFn0 — это конкретная версия notifyFn , используемая в Windows Vista и более поздних версиях. Дополнительные сведения см. в разделах Имена, не зависящие от версий, а также в статье о конкретных версиях Windows. Для Windows 8 доступна функция notifyFn2 . Для Windows 7 доступна функция notifyFn1 .
Синтаксис
FWPS_CALLOUT_NOTIFY_FN0 FwpsCalloutNotifyFn0;
NTSTATUS FwpsCalloutNotifyFn0(
FWPS_CALLOUT_NOTIFY_TYPE notifyType,
const GUID *filterKey,
FWPS_FILTER0 *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_FILTER0 . Эта структура описывает фильтр, который добавляется в подсистему фильтров или удаляется из нее.
Функция выноски notifyFn0 может задать элемент контекста этой структуры, указывающий на предоставленную драйвером выноски структуру контекста при добавлении фильтра в подсистему фильтрации. Эта структура контекста является непрозрачной для подсистемы фильтрации и может использоваться функцией выноски classifyFn0 драйвера выноски для сохранения любых данных или сведений о состоянии драйвера между вызовами подсистемы фильтров к функции выноски classifyFn0 драйвера выноски.
Функция выноски notifyFn0 выноски может очистить любой контекст, связанный с фильтром, при удалении фильтра из обработчика фильтров.
Возвращаемое значение
Функция notifyFn0 выноски возвращает один из следующих кодов NTSTATUS .
| Код возврата | Описание |
|---|---|
| STATUS_SUCCESS | Драйвер выноски принимает уведомление от обработчика фильтров. |
| Другие коды состояния | Произошла ошибка. Если параметр notifyType имеет FWPS_CALLOUT_NOTIFY_ADD_FILTER, фильтр не будет добавлен в подсистему фильтров. Если параметр notifyTypeFWPS_CALLOUT_NOTIFY_DELETE_FILTER, фильтр по-прежнему будет удален из подсистемы фильтров. |
Комментарии
Драйвер выноски регистрирует функции выноски в обработчике фильтров, вызывая функцию FwpsCalloutRegister0 .
Подсистема фильтрации вызывает функцию выноски notifyFn0 выноски, чтобы уведомить драйвер выноски о событиях, связанных с выноской. Если функция выноски notifyFn0 драйвера выноски не распознает тип уведомления, передаваемого в параметре notifyType , она игнорирует уведомление и возвращает STATUS_SUCCESS.
Если драйвер выноски регистрирует выноску в обработчике фильтров после того, как фильтры, указывающие выноску для действия фильтра, уже были добавлены в подсистему фильтров, подсистема фильтров не вызывает функцию выноски notifyFn0 драйвера выноски, чтобы уведомить выноску о существующих фильтрах. Подсистема фильтров вызывает функцию выноски notifyFn0 драйвера выноски, чтобы уведомить выноску о добавлении новых фильтров, указывающих выноску для действия фильтра. В этом случае функция выноски notifyFn0 выноски может не вызываться для каждого фильтра в обработчике фильтров, который задает выноску для действия фильтра. Если драйвер выноски регистрирует выноску после запуска обработчика фильтров и выноска должна знать о каждом фильтре в механизме фильтрации, который указывает выноску для действия фильтра, драйвер выноски должен вызвать соответствующие функции управления для перечисления всех фильтров в подсистеме фильтров и отсортировать полученный список фильтров, чтобы найти те, которые указывают выноску для действия фильтра. Дополнительные сведения о вызове этих функций см. в статье Вызов других функций платформы фильтрации Windows .
Когда фильтр, указывающий выноску для действия фильтра, удаляется из подсистемы фильтров, обработчик фильтров вызывает функцию выноски notifyFn0 драйвера выноски и передает FWP_CALLOUT_NOTIFY_DELETE_FILTER в параметре notifyType и NULL в параметре filterKey. Дополнительные сведения см. в разделе Обработка выносок уведомлений.
Требования
| Требование | Значение |
|---|---|
| Заголовок | fwpsu.h |