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 函数时在 Context 参数中传递的指针。
newState
筛选器引擎的新状态。 此参数包含以下值之一:
FWPM_SERVICE_STOPPED
筛选器引擎未运行。
FWPM_SERVICE_START_PENDING
筛选器引擎正在启动。
FWPM_SERVICE_STOP_PENDING
筛选器引擎正在停止。
FWPM_SERVICE_RUNNING
筛选器引擎正在运行。
[in, optional] context
指向标注驱动程序提供的上下文的指针,该上下文传递给 Callback 参数中指定的回调函数。
[out] changeHandle
指向变量的指针,该变量接收与回调函数注册关联的句柄。 标注驱动程序将此句柄传递给 FwpmBfeStateUnsubscribeChanges0 函数以取消注册回调函数。
返回值
FwpmBfeStateSubscribeChanges0 函数返回以下 NTSTATUS 代码之一:
返回代码 | 说明 |
---|---|
|
已成功注册回调函数。 |
|
出现了错误。 |
注解
标注驱动程序调用 FwpmBfeStateSubscribeChanges0 函数,以注册每当筛选器引擎的状态发生更改时调用的回调函数。
例如,除非筛选器引擎当前正在运行,否则标注驱动程序无法通过调用 FwpmEngineOpen0 函数打开与筛选器引擎的会话。 标注驱动程序可以使用 FWPM_SERVICE_RUNNING 通知打开与筛选器引擎的会话,以便它可以调用其他 Windows 筛选平台管理功能。 同样,标注驱动程序可以使用 FWPM_SERVICE_STOP_PENDING 通知在筛选器引擎停止之前执行任何清理。
标注驱动程序必须在调用 FwpmBfeStateGet0 函数之前调用 FwpmBfeStateSubscribeChanges0 以检索筛选器引擎的当前状态。 对 FwpmBfeStateSubscribeChanges0 的调用返回后,标注驱动程序可以随时调用 FwpmBfeStateGet0 。
标注驱动程序必须通过调用 取消注册回调函数可以卸载标注驱动程序之前的 FwpmBfeStateUnsubscribeChanges0 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | fwpmk.h (包括 Fwpmk.h) |
Library | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |
另请参阅
FwpmBfeStateUnsubscribeChanges0反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈