SetProcessDynamicEHContinuationTargets 函数 (processthreadsapi.h)

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

语法

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 指定延续目标。

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 processthreadsapi.h