IDiaStackWalkHelper2::GetPointerAuthenticationMask

Retrieves the value of the pointer authentication mask.

Syntax

HRESULT GetPointerAuthenticationMask ( 
    ULONG64 PtrVal,
    ULONG64* AuthMask
);

Parameters

PtrVal

[in] The pointer from the stack to be decoded.

AuthMask

[out] Returns the value of the authentication mask.

Return Value

If successful, returns S_OK; otherwise, returns an error code.

Remarks

Currently only the ARM64 hardware and OS support pointer authentication, so this callback is only ever called when walking ARM64 stacks. If AuthMask has all the bits set (0xFFFFFFFFFFFFFFFFull), then it means that the target stack shares the same pointer authentication as the current process, and thus DIA should use the OS APIs to decode the pointer. Conversely if AuthMask has no bits set it means that pointer authentication is not in use or enabled and thus the pointer does not need to be decoded. Otherwise the AuthMask should have 1 bit set for every part of the pointer that is part of the pointer authentication, and 0 for the base parts of the pointer.

See also