SetProcessValidCallTargets 函数 (memoryapi.h)

提供控制流防护 (CFG) 有效间接调用目标的列表,并指定是否应将其标记为有效。 有效的呼叫目标信息作为相对于虚拟内存范围的偏移量列表提供, (范围) 的开始和大小。 指定的调用目标应为 16 字节对齐且按升序排列。

语法

BOOL SetProcessValidCallTargets(
  [in]      HANDLE                hProcess,
  [in]      PVOID                 VirtualAddress,
  [in]      SIZE_T                RegionSize,
  [in]      ULONG                 NumberOfOffsets,
  [in, out] PCFG_CALL_TARGET_INFO OffsetInformation
);

parameters

[in] hProcess

目标进程的句柄。

[in] VirtualAddress

其调用目标标记为有效的虚拟内存区域的开始。 必须使用可执行内存 保护常量之一来分配内存区域。

[in] RegionSize

虚拟内存区域的大小。

[in] NumberOfOffsets

相对于虚拟内存范围的偏移量。

[in, out] OffsetInformation

相对于虚拟内存范围的偏移量和标志的列表。

返回值

如果操作成功,则为 TRUE;否则为 FALSE。 若要检索此函数的错误值,请调用 GetLastError

注解

如果未为目标进程启用控制流防护,则此函数不会成功。 这可以使用 GetProcessMitigationPolicy 进行检查。

要求

   
最低受支持的客户端 Windows 10 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2016 [桌面应用 |UWP 应用]
目标平台 Windows
标头 memoryapi.h (包括 Windows.h、Memoryapi.h)
Library WindowsApp.lib
DLL Kernelbase.dll