FWPS_CALLOUT_CLASSIFY_FN2回调函数 (fwpsk.h)

每当标注处理数据时,筛选器引擎都会调用标注的 分类Fn2 标注函数。

NoteclassifyFn2 is specific version of classifyFn in Windows 8 and later. 有关详细信息,请参阅 WFP Version-Independent 名称和面向特定版本的 Windows。 对于 Windows 7,分类Fn1 可用。 对于 Windows Vista,分类Fn0 可用。

 

语法

FWPS_CALLOUT_CLASSIFY_FN2 FwpsCalloutClassifyFn2;

void FwpsCalloutClassifyFn2(
  [in]                const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]                const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out, optional] void *layerData,
  [in, optional]      const void *classifyContext,
  [in]                const FWPS_FILTER2 *filter,
  [in]                UINT64 flowContext,
  [in, out]           FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

参数

[in] inFixedValues

指向 FWPS_INCOMING_VALUES0 结构的指针。 此结构包含正在筛选的层中每个数据字段的值。

[in] inMetaValues

指向 FWPS_INCOMING_METADATA_VALUES0 结构。 此结构包含所筛选层中每个元数据字段的值。

[in, out, optional] layerData

指向描述所筛选层中原始数据的结构的指针。 此参数可能是 NULL,具体取决于要筛选的层以及调用 classifyFn2 标注函数的条件。 对于流层,此参数指向 FWPS_STREAM_CALLOUT_IO_PACKET0 结构。 对于所有其他层,如果此参数不为 NULL,则指向 NET_BUFFER_LIST 结构。

[in, optional] classifyContext

指向筛选器引擎与标注驱动程序关联的上下文数据的指针。

[in] filter

指向 FWPS_FILTER2 结构的指针。 此结构描述指定筛选器作标注的筛选器。

[in] flowContext

包含与数据流关联的上下文的 UINT64 类型变量。 如果没有与数据流关联的上下文,则此参数为零。 如果在不支持数据流的筛选层上将标注添加到筛选器引擎,则分类Fn2 标注函数应忽略此参数。

[in, out] classifyOut

指向 FWPS_CLASSIFY_OUT0 结构的指针,该结构接收 分类Fn2 标注函数返回给调用方的任何数据。

返回值

没有

言论

标注驱动程序通过调用 FwpsCalloutRegister2 函数向筛选器引擎注册标注函数。

筛选器引擎调用标注的 分类Fn2 标注函数,每当筛选器引擎中指定筛选器作标注的筛选器满足所有测试条件时,都要处理数据。

标注的 分类Fn2 标注函数应在以下任一情况下清除 权限FWPS_CLASSIFY_OUT0 结构成员中的FWPS_RIGHT_ACTION_WRITE标志:

  • classifyFn2 标注函数将 FWPS_CLASSIFY_OUT0 结构的 actionType 成员设置为FWP_ACTION_BLOCK时。
  • classifyFn2 标注函数将 FWPS_CLASSIFY_OUT0 结构的 actionType 成员设置为FWP_ACTION_PERMIT,并在 FWPS_FILTER2 结构的 标志 成员中设置FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT标志。
  • 当标注指示它打算通过在调用 中将 intendToModify 参数设置为 TRUE 来修改克隆 net 缓冲区列表时 FwpsReferenceNetBufferList0 函数。

    此函数实质上与以前的版本相同,分类Fn1。 但是,更新后的 FWPS_FILTER2 结构由 筛选器 参数指向,layerData 参数是可选的。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 窗户
标头 fwpsk.h (包括 Fwpsk.h)
IRQL <= DISPATCH_LEVEL

另请参阅

将上下文与数据流关联

标注驱动程序标注函数

数据日志记录

FWPS_CLASSIFY_OUT0

FWPS_FILTER2

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister2

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

数据包修改示例

向筛选器引擎注册标注

使用标注深入检查流数据

使用标注进行深度检查

分类Fn

分类Fn0

分类Fn1