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

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

ПримечаниеFwpmBfeStateSubscribeChanges0 — это определенная версия FwpmBfeStateSubscribeChanges. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows .
 

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

Не вызывайте 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

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

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

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

Контекст

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

Новое_состояние

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

FWPM_SERVICE_STOPPED

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

FWPM_SERVICE_START_PENDING

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

FWPM_SERVICE_STOP_PENDING

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

FWPM_SERVICE_RUNNING

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

[in, optional] context

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

[out] changeHandle

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

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

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

Код возврата Описание
STATUS_SUCCESS
Функция обратного вызова успешно зарегистрирована.
Другие коды состояния
Произошла ошибка.

Комментарии

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

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

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

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

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Целевая платформа Универсальное
Верхняя часть fwpmk.h (включая Fwpmk.h)
Библиотека Fwpkclnt.lib
IRQL PASSIVE_LEVEL

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

FwpmBfeStateGet0

FwpmBfeStateUnsubscribeChanges0

FwpmEngineOpen0