FwpsCalloutRegister0 函数 (fwpsk.h)
FwpsCalloutRegister0 函数向筛选器引擎注册标注。
语法
NTSTATUS FwpsCalloutRegister0(
[in, out] void *deviceObject,
[in] const FWPS_CALLOUT0 *callout,
[out, optional] UINT32 *calloutId
);
参数
[in, out] deviceObject
指向之前由标注驱动程序创建的设备对象的指针。 有关标注驱动程序如何创建设备对象的详细信息,请参阅 创建设备对象。
[in] callout
指向常 量FWPS_CALLOUT0 结构的指针,该结构包含向筛选器引擎注册标注所需的数据。
[out, optional] calloutId
指向 UINT32 类型变量的指针,该变量接收标识筛选器引擎中标注的运行时标识符。 从筛选器引擎取消注册标注时,标注驱动程序将此标识符传递给 FwpsCalloutUnregisterById0 函数。 如果标注驱动程序正在筛选数据流,它还会将此标识符传递给 FwpsFlowAssociateContext0 和 FwpsFlowRemoveContext0 函数。 如果标注驱动程序将数据注入数据流,它还会将此标识符传递给 FwpsStreamInjectAsync0 函数。 筛选器引擎还会将此标识符传递给标注驱动程序的 flowDeleteFn 标注函数。 此参数是可选的,可以为 NULL。
返回值
FwpsCalloutRegister0 函数返回以下 NTSTATUS 代码之一。
返回代码 | 说明 |
---|---|
|
标注已成功注册到筛选器引擎。 |
|
无法向筛选器引擎注册标注。 标注已在筛选器引擎中注册,其标识符与标注参数指向的 FWPS_CALLOUT0 结构的 calloutKey 成员中指定的 GUID 相同。 |
|
出现了错误。 |
注解
标注驱动程序调用 FwpsCalloutRegister0 函数以向筛选器引擎注册标注。 标注驱动程序可以随时向筛选器引擎注册标注,即使筛选器引擎当前未运行。
在标注驱动程序将标注注册到筛选器引擎之前,可以将为筛选器操作指定标注的标注和筛选器添加到筛选器引擎。 在这种情况下,操作类型 为 FWP_ACTION_CALLOUT_TERMINATING 或 FWP_ACTION_CALLOUT_UNKNOWN 的筛选器被视为 FWP_ACTION_BLOCK,操作类型为 FWP_ACTION_CALLOUT_INSPECTION 的筛选器将被忽略,直到标注注册到筛选器引擎。
标注驱动程序通过调用 任一从筛选器引擎取消注册标注 FwpsCalloutUnregisterById0 函数或 FwpsCalloutUnregisterByKey0 函数。 在成功注销以前注册到筛选器引擎的所有标注之前,无法卸载标注驱动程序。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | fwpsk.h (包括 Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL | PASSIVE_LEVEL |