Edit

Share via


PGET_TARGET_ATTRIBUTE_VALUE64 callback function (dbghelp.h)

An application-defined callback function used with the StackWalk2 function. It provides target attribute values which are required for the stack walk.

The PGET_TARGET_ATTRIBUTE_VALUE64 type defines a pointer to this callback function. GetTargetAttributeValueProc64 is a placeholder for the application-defined function name.

Syntax

PGET_TARGET_ATTRIBUTE_VALUE64 PgetTargetAttributeValue64;

BOOL PgetTargetAttributeValue64(
  [in]  HANDLE hProcess,
  [in]  DWORD Attribute,
  [in]  DWORD64 AttributeData,
  [out] DWORD64 *AttributeValue
)
{...}

Parameters

[in] hProcess

A handle to the process for which the stack trace is generated.

[in] Attribute

A numeric value indicating what atttribute is being requested. Currently defined values are:

Name Value
TARGET_ATTRIBUTE_PACMASK (0x01) Indicates that the stack walker is requesting the ARM64 pointer authentication mask for the process whose stack is being walked.

If this attribute is being requested, the AttributeData parameter will indicate the address for which the PAC mask is being fetched. This allows a differentiation between PAC masks for EL0/1/2 (user mode versus kernel mode, etc...).

If PAC is disabled (or the stack walk is not for an ARM64 platform), the implementation should return FALSE indicating that this attribute cannot be provided.

The special value TARGET_ATTIBUTE_PACMASK_LIVETARGET (0xffffffff`ffffffff) may be returned as an indication that the PAC mask is the same as the process calling StackWalk2.

[in] AttributeData

A data value associated with the Attribute parameter. The meaning of this parameter varies depending on the attribute being requested.

[out] AttributeValue

The implementation of the callback must place the value of the requested attribute here before returning success.

Return value

The function returns whether or not the attribute value was successfully stored in the AttributeValue output parameter. If the given attribute is not recognized or is irrelevant for the platform in question, the function should return FALSE.

Remarks

typedef
BOOL
(__stdcall *PGET_TARGET_ATTRIBUTE_VALUE64)(
    _In_ HANDLE hProcess,
    _In_ DWORD Attribute,
    _In_ DWORD64 AttributeData,
    _Out_ DWORD64 *AttributeValue
    );

Requirements

Requirement Value
Target Platform Windows
Header dbghelp.h
Redistributable DbgHelp.dll 10.0.22621.4602 or later

See also