RtlUnwindEx function (winnt.h)

Initiates an unwind of procedure call frames.

Syntax

NTSYSAPI VOID RtlUnwindEx(
  [in, optional] PVOID                 TargetFrame,
  [in, optional] PVOID                 TargetIp,
  [in, optional] PEXCEPTION_RECORD     ExceptionRecord,
  [in]           PVOID                 ReturnValue,
  [in]           PCONTEXT              ContextRecord,
  [in, optional] PUNWIND_HISTORY_TABLE HistoryTable
);

Parameters

[in, optional] TargetFrame

A pointer to the call frame that is the target of the unwind. If this parameter is NULL, the function performs an exit unwind.

[in, optional] TargetIp

The continuation address of the unwind. This parameter is ignored if TargetFrame is NULL.

[in, optional] ExceptionRecord

A pointer to an EXCEPTION_RECORD structure.

[in] ReturnValue

A value to be placed in the integer function return register before continuing execution.

[in] ContextRecord

A pointer to a CONTEXT structure that stores context during the unwind operation.

[in, optional] HistoryTable

A pointer to the unwind history table. This structure is processor specific. For definitions of this structure, see Winternl.h.

Return value

This function does not return a value.

Remarks

The FRAME_POINTERS structure is defined as follows:

typedef struct _FRAME_POINTERS {
    ULONGLONG MemoryStackFp;
    ULONGLONG BackingStoreFp;
} FRAME_POINTERS, *PFRAME_POINTERS;

Requirements

Requirement Value
Target Platform Windows
Header winnt.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also

CONTEXT

EXCEPTION_RECORD

Vertdll APIs available in VBS enclaves