SetProcessDynamicEHContinuationTargets 函数 (processthreadsapi.h)

设置指定进程的动态异常处理延续目标。

Syntax

BOOL SetProcessDynamicEHContinuationTargets(
  HANDLE                                  Process,
  USHORT                                  NumberOfTargets,
  PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets
);

参数

Process

进程的句柄。 此句柄必须具有 PROCESS_SET_INFORMATION 访问权限。 有关详细信息,请参阅 进程安全性和访问权限

NumberOfTargets

提供要设置的动态异常处理延续目标的数量。

Targets

指向动态异常处理延续目标的数组的指针。 有关此结构的详细信息,请参阅 PROCESS_DYNAMIC_EH_CONTINUATION_TARGET

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError。 请注意,即使函数失败,提供的延续目标的一部分也可能已成功处理。 调用方需要检查通过 Targets 指定的每个延续目标中的标志,以确定它是否已成功处理。

注解

如果为进程启用了用户模式硬件强制堆栈保护,则调用修改线程(如 RtlRestoreContextSetThreadContext)的执行上下文的 API 时,将对新执行上下文中指定的指令指针执行验证。 RtlRestoreContext 用于 结构化异常处理 (SEH)异常展开,以展开到包含 __except 块的目标帧,并开始在延续目标上执行代码。 因此,作系统需要知道所有有效延续目标的指令地址,以便通过 RtlRestoreContext 允许展开作。 对于已编译的二进制文件,延续目标列表由链接器生成,并存储在二进制图像中。 对于动态代码,需要使用 SetProcessDynamicEHContinuationTargets 指定延续目标。

要求

Requirement 价值
最低支持的客户端 Windows 10 内部版本 20348
支持的最低服务器 Windows 10 内部版本 20348
Header processthreadsapi.h
Library kernel32。自由