FwpsQueryPacketInjectionState0 函数 (fwpsk.h)
FwpsQueryPacketInjectionState0 函数由标注调用,以查询数据包数据的注入状态。
语法
FWPS_PACKET_INJECTION_STATE FwpsQueryPacketInjectionState0(
[in] HANDLE injectionHandle,
[in] const NET_BUFFER_LIST *netBufferList,
[out, optional] HANDLE *injectionContext
);
参数
[in] injectionHandle
以前通过调用 创建的注入句柄 FwpsInjectionHandleCreate0 函数。
[in] netBufferList
指向描述要分类的数据包数据的 NET_BUFFER_LIST 结构的指针。 数据包可以源自网络堆栈,也可以由 WFP 标注驱动程序注入到网络堆栈中。
[out, optional] injectionContext
注入上下文的可选句柄。 如果指定了指针,并且与注入句柄关联的数据包注入状态 FWPS_PACKET_INJECTION_STATE FWPS_PACKET_INJECTED_BY_SELF或FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELF,则将返回注入数据包时提供的注入上下文。
返回值
FwpsQueryPacketInjectionState0 函数返回FWPS_PACKET_INJECTION_STATE枚举的常量值之一。
注解
由于可以针对注入它的标注重新分类注入的数据包数据,因此此函数允许标注在必要时检查数据包数据的注入历史记录,从而避免对已检查的数据包数据进行重复检查。
标注可以通过在数据包数据注入时在其中一个数据包注入函数中指定可选的 injectionContext 句柄来跟踪其他特定于标注的信息。 如果 FwpsQueryPacketInjectionState0 函数返回 FWPS_PACKET_INJECTED_BY_SELF 或 FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELF,则提供的 injectionContext 将作为执行注入的函数的 completionContext 参数返回。
如果返回值为 FWPS_PACKET_INJECTED_BY_SELF 或 FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELF,则不应在克隆和注入过程中进一步修改或插入 netBufferList 指向的网络缓冲区列表。 在这种情况下,标注应将分类Fn 函数的分类输出参数指向的FWPS_CLASSIFY_OUT0结构的 actionType 成员设置为FWP_ACTION_CONTINUE或FWP_ACTION_PERMIT。 这允许数据包继续下一个标注。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | fwpsk.h (包括 Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |