FWPS_CALLOUT_CLASSIFY_FN3回调函数 (fwpsu.h)
当标注筛选器匹配时,分类期间调用的回调函数的版本 3。 不同之处在于,此回调返回 FWPS_FILTER3 结构。
语法
FWPS_CALLOUT_CLASSIFY_FN3 FwpsCalloutClassifyFn3;
void FwpsCalloutClassifyFn3(
const FWPS_INCOMING_VALUES0 *inFixedValues,
const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
void *layerData,
const void *classifyContext,
const FWPS_FILTER3 *filter,
UINT64 flowContext,
FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}
参数
inFixedValues
指向 FWPS_INCOMING_VALUES0 结构的指针。 此结构包含要筛选的层上每个数据字段的值。
inMetaValues
指向 FWPS_INCOMING_METADATA_VALUES0 结构的指针。 此结构包含要筛选的层上每个元数据字段的值。
layerData
指向 结构的指针,该结构描述要筛选的层上的原始数据。 此参数可能为 NULL,具体取决于要筛选的层以及调用 classifyFn3 标注函数的条件。 对于流层,此参数指向 FWPS_STREAM_CALLOUT_IO_PACKET0 结构。 对于所有其他层,如果参数不为 NULL,则指向NET_BUFFER_LIST结构。
classifyContext
指向筛选器引擎与标注驱动程序关联的上下文数据的指针。
filter
指向 FWPS_FILTER3 结构的指针。 此结构描述指定筛选器操作的标注的筛选器。
flowContext
包含与数据流关联的上下文的 UINT64 类型变量。 如果没有与数据流关联的上下文,则此参数为零。 如果将标注添加到不支持数据流的筛选层的筛选引擎,则 classifyFn3 标注函数应忽略此参数。
classifyOut
指向 FWPS_CLASSIFY_OUT0 结构的指针,该结构接收 classifyFn3 标注函数返回给调用方的任何数据。
返回值
无
备注
标注驱动程序通过调用 FwpsCalloutRegister2 函数向筛选器引擎注册标注的标注函数。
每当筛选器引擎中指定筛选器操作的标注的所有测试条件都为 true 时,筛选器引擎调用标注的 classifyFn3 标注函数,并处理数据。
在下列任何情况下,标注的 classifyFn1 标注函数应清除FWPS_CLASSIFY_OUT0结构的权限成员中的FWPS_RIGHT_ACTION_WRITE标志:
- 当 classifyFn1 标注函数将 FWPS_CLASSIFY_OUT0 结构的 actionType 成员设置为FWP_ACTION_BLOCK时。
- 当 classifyFn1 标注函数将 FWPS_CLASSIFY_OUT0 结构的 actionType 成员设置为FWP_ACTION_PERMIT,并在 FWPS_FILTER3 结构的 flags 成员中设置FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT标志时。
- 当标注已指示它打算通过在调用 FwpsReferenceNetBufferList0 函数时将 intendToModify 参数设置为 TRUE 来修改克隆净缓冲区列表。
要求
要求 | 值 |
---|---|
Header | fwpsu.h |