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


Функция FwpmBfeStateSubscribeChanges0 (fwpmk.h)

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

Предупреждение

Не вызывайте FwpmBfeStateUnsubscribeChanges0 из функции обратного вызова, переданной в параметре обратного вызова . Это может привести к взаимоблокировки.

Синтаксис

NTSTATUS FwpmBfeStateSubscribeChanges0(
  [in, out]      void                                *deviceObject,
  [in]           FWPM_SERVICE_STATE_CHANGE_CALLBACK0 callback,
  [in, optional] void                                *context,
  [out]          HANDLE                              *changeHandle
);

Параметры

[in, out] deviceObject

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

[in] callback

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

Функция обратного вызова изменения состояния службы объявляется следующим образом.

VOID NTAPI
callback(
    IN OUT void  *context,
    IN FWPM_SERVICE_STATE  newState
    );

Контекст

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

newState

Новое состояние обработчика фильтров. Этот параметр содержит одно из следующих значений:

FWPM_SERVICE_STOPPED

Подсистема фильтров не запущена.

FWPM_SERVICE_START_PENDING

Модуль фильтрации запускается.

FWPM_SERVICE_STOP_PENDING

Подсистема фильтрации останавливается.

FWPM_SERVICE_RUNNING

Подсистема фильтрации запущена.

[in, optional] context

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

[out] changeHandle

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

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

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

Возвращаемый код Описание
STATUS_SUCCESS Функция обратного вызова успешно зарегистрирована.
другие коды NTSTATUS Произошла ошибка.

Замечания

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

Например, драйвер выноски не может открыть сеанс в обработчике фильтров, вызвав функцию FwpmEngineOpen0, если подсистема фильтрации в настоящее время не запущена. Драйвер выноски может использовать уведомление FWPM_SERVICE_RUNNING для открытия сеанса в обработчике фильтров, чтобы он смог вызывать другие функции управления платформой фильтрации Windows. Аналогичным образом драйвер выноски может использовать уведомление FWPM_SERVICE_STOP_PENDING для выполнения любой очистки перед остановкой обработчика фильтров.

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

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

FwpmBfeStateSubscribeChanges0 — это определенная версия FwpmBfeStateSubscribeChanges. Дополнительные сведения см. в статье МПП Version-Independent имен и целевых версий Windows.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
целевая платформа Всеобщий
заголовка fwpmk.h (include Fwpmk.h)
библиотеки Fwpkclnt.lib
IRQL PASSIVE_LEVEL

См. также