FwpsFlowAssociateContext0 函数 (fwpsk.h)
FwpsFlowAssociateContext0 函数将标注驱动程序定义的上下文与数据流相关联。
语法
NTSTATUS FwpsFlowAssociateContext0(
[in] UINT64 flowId,
[in] UINT16 layerId,
[in] UINT32 calloutId,
[in] UINT64 flowContext
);
参数
[in] flowId
一个运行时标识符,指定要与上下文关联的数据流。 数据流的运行时标识符通过传递给标注驱动程序的 classifyFn 标注函数的FWPS_METADATA_FIELD_FLOW_HANDLE元数据值提供给标注驱动程序。
[in] layerId
与上下文关联的筛选层的运行时标识符。 上下文将仅与指定的筛选层相关联。 有关详细信息,请参阅 运行时筛选层标识符。
[in] calloutId
筛选器引擎中标注的运行时标识符。 当标注驱动程序调用 FwpsCalloutRegister0、FwpsCalloutRegister1 或 FwpsCalloutRegister2 函数以向筛选器引擎注册标注时,将返回此标识符。
[in] flowContext
要与数据流关联的标注驱动程序定义的上下文。 此参数不得为零。 此上下文对筛选器引擎是不透明的。
返回值
FwpsFlowAssociateContext0 函数返回以下 NTSTATUS 代码之一。
返回代码 | 说明 |
---|---|
|
上下文已成功与数据流关联。 |
|
flowContext 参数为 NULL,或者 calloutID 参数指定的标注未注册 flowDeleteFn。 |
|
上下文已与数据流关联。 在这种情况下,标注驱动程序应首先调用 FwpsFlowRemoveContext0 函数以删除现有上下文,然后再次调用 FwpsFlowAssociateContext0 函数以将新上下文与数据流相关联。 |
|
出现了错误。 |
注解
筛选数据流时,标注驱动程序可以调用 FwpsFlowAssociateContext0 函数,以将上下文与数据流相关联。 然后,它可以使用此上下文保留筛选器引擎在该数据流的 标注的 classifyFn 标注函数的调用之间任何特定于驱动程序的数据或状态信息。
筛选器引擎中必须有一个标注,该层由已注册 flowDeleteFn 标注函数的 layerId 参数标识。 否则,对 FwpsFlowAssociateContext0 函数的 调用将返回STATUS_INVALID_PARAMETER。 当流终止时,筛选器引擎会调用该 flowDeleteFn 标注函数,以便标注驱动程序可以清理与流关联的上下文。
可以为同一流多次调用 FwpsFlowAssociateContext0 。 在每次调用中,必须指定不同的标注和不同的上下文-每个添加的标注一个上下文。
FwpsFlowAssociateContext0 函数将单个上下文与单个添加的标注相关联。
可以将多个上下文与一个流相关联。 但是,每个上下文都必须与不同的标注相关联。 新标注可以与上一个标注位于同一层,也可以位于不同的层。
有关详细信息和示例代码,请参阅将上下文与数据流关联和 Windows 筛选平台示例。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | fwpsk.h (包括 Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |