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 |