FwpsPendOperation0 函数 (fwpsk.h)

FwpsPendOperation0 函数由标注调用,以挂起数据包处理,等待另一个作完成。

注意,FwpsPendOperation0FwpsPendOperation的特定版本。 有关详细信息,请参阅 WFP Version-Independent 名称和面向特定版本的 Windows
 

语法

NTSTATUS FwpsPendOperation0(
  [in]  HANDLE completionHandle,
  [out] HANDLE *completionContext
);

参数

[in] completionHandle

笔触当前筛选作所需的完成句柄。 此参数是从传递给标注驱动程序的 classifyFn 函数 FWPS_INCOMING_METADATA_VALUES0 结构的 FWPS_INCOMING_METADATA_VALUES0 结构的 completionHandle 成员获取的。

[out] completionContext

此笔作完成上下文的句柄。 当标注准备好恢复数据包处理时,它将调用 FwpsCompleteOperation0 函数,并将此参数的值作为输入 completionContext 参数。

返回值

FwpsPendOperation0 函数返回以下 NTSTATUS 代码之一。

返回代码 描述
STATUS_SUCCESS
数据包处理已成功插入。
STATUS_FWP_CANNOT_PEND
在重新授权分类作中,已调用 FwpsPendOperation0。 有关详细信息,请参阅“备注”。
STATUS_FWP_NULL_POINTER
一个或多个参数无效。
STATUS_FWP_TCPIP_NOT_READY
TCP/IP 网络堆栈尚未准备好允许此作。
其他状态代码
发生错误。

言论

标注应保留 completionContext 参数值,直到它恢复数据包处理。 当提示调用此函数的作已完成时,标注应调用 FwpsCompleteOperation0 函数,并向其传递 completionContext 参数值。

标注只能调用此函数来绘制源自 FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_ Xxx、FWPM_LAYER_ALE_AUTH_LISTEN_ Xxx或 FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx筛选层的数据包。 当标注必须在其中一个层上执行处理时,标注可以对数据包执行当前处理作,这些层可能需要较长的时间间隔才能完成,或者在 IRQL = PASSIVE_LEVEL(如果当前 IRQL > PASSIVE_LEVEL)发生。

若要完成之前在 FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx 层上绘制的连接,标注驱动程序必须重新连接在该层克隆的数据包,并调用 FwpsCompleteOperation0 函数。

为了能够进行数据包处理,标注驱动程序的 classifyFn 函数应将 FWPS_CLASSIFY_OUT0 结构的 actionType 成员设置为FWP_ACTION_BLOCK,标志 成员设置为FWPS_CLASSIFY_OUT_FLAG_ABSORB。

FwpsCompleteOperation0 函数执行后,重新进行身份验证。 TCP 连接(如果允许)是通过完成握手作创建的,但非 TCP 连接仅创建状态条目。 FwpsPendOperation0 函数完成时,任何笔接数据包数据将从内存中刷新,因此应用程序必须在 FwpsCompleteOperation0 运行后重新传输这些数据包。 标注可以缓冲此类数据,并代表数据重新执行。

只有初始应用程序层强制(ALE)流授权可以通过调用 FwpsPendOperation0FwpsCompleteOperation0来推迟。 如果重新授权 ALE 流,则会设置FWP_CONDITION_FLAG_IS_REAUTHORIZE标志。 如果设置了FWP_CONDITION_FLAG_IS_REAUTHORIZE标志,则从 FWPM_LAYER_ALE_AUTH_CONNECT_ Xxx 或 FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_ Xxx筛选层调用FwpsPendOperation0,并且将返回STATUS_FWP_CANNOT_PEND状态代码。 有关详细信息,请参阅 Windows SDK 中的 ALE 重新授权。

要求

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

另请参阅

FWPS_CLASSIFY_OUT0

FWPS_INCOMING_METADATA_VALUES0

FwpsCompleteOperation0

分类Fn