与 StackWalk2 函数一起使用的应用程序定义的回调函数。 它提供堆栈演练所需的目标属性值。
PGET_TARGET_ATTRIBUTE_VALUE64 类型定义指向此回调函数的指针。 GetTargetAttributeValueProc64 是应用程序定义的函数名称的占位符。
语法
PGET_TARGET_ATTRIBUTE_VALUE64 PgetTargetAttributeValue64;
BOOL PgetTargetAttributeValue64(
[in] HANDLE hProcess,
[in] DWORD Attribute,
[in] DWORD64 AttributeData,
[out] DWORD64 *AttributeValue
)
{...}
参数
[in] hProcess
生成堆栈跟踪的进程句柄。
[in] Attribute
一个数值,指示正在请求什么 atttribute。 当前定义的值为:
名字 | 价值 |
---|---|
TARGET_ATTRIBUTE_PACMASK(0x01) | 指示堆栈演练程序正在请求对其堆栈正在执行的进程使用 ARM64 指针身份验证掩码。 |
如果请求此属性,AttributeData 参数将指示提取 PAC 掩码的地址。 这样就可以区分 EL0/1/2 的 PAC 掩码(用户模式与内核模式等...)。
如果禁用 PAC(或者堆栈步行不适用于 ARM64 平台),则实现应返回 FALSE,指示无法提供此属性。
特殊值 TARGET_ATTIBUTE_PACMASK_LIVETARGET(0xffffffff'ffffffff)可能作为指示 PAC 掩码与调用 StackWalk2 的进程相同。
[in] AttributeData
与 Attribute 参数关联的数据值。 此参数的含义因请求的属性而异。
[out] AttributeValue
回调的实现必须在返回成功之前将请求的属性的值放在此处。
返回值
该函数返回是否成功将属性值存储在 AttributeValue 输出参数中。 如果给定属性无法识别或与相关平台无关,该函数应返回 FALSE。
言论
typedef
BOOL
(__stdcall *PGET_TARGET_ATTRIBUTE_VALUE64)(
_In_ HANDLE hProcess,
_In_ DWORD Attribute,
_In_ DWORD64 AttributeData,
_Out_ DWORD64 *AttributeValue
);
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | dbghelp.h |
可再发行组件 | DbgHelp.dll 10.0.22621.4602 或更高版本 |