Share via


RtlRestoreCoNtext 函式 (winnt.h)

將呼叫端的內容還原至指定的內容記錄。

語法

NTSYSAPI VOID __cdecl RtlRestoreContext(
  PCONTEXT          ContextRecord,
  _EXCEPTION_RECORD *ExceptionRecord
);

參數

[in] ContextRecord

CONTEXT結構的指標。

[in] ExceptionRecord

EXCEPTION_RECORD結構的指標。 此參數是選擇性的,通常應該是 Null

例外狀況記錄主要用於長跳和 C++ 攔截擲回支援。 如果 ExceptionCode 成員STATUS_LONGJUMP, ExceptionInformation 成員會包含跳躍緩衝區的指標。 RtlRestoreCoNtext 會在還原內容記錄之前,將中的跳躍緩衝區中非變動狀態複製到內容記錄。

如果 ExceptionCode 成員STATUS_UNWIND_CONSOLIDATE, ExceptionInformation 成員會包含回呼函式的指標,例如 catch 處理常式。 RtlRestoreCoNtext 會先合併其框架與內容記錄中指定的框架之間的呼叫框架,再呼叫回呼函式。 這會將畫面隱藏回呼函式中可能發生的任何例外狀況處理。 這與一般回溯之間的差異在於堆疊上的資料仍然存在,因此仍可使用擲回物件之類的框架資料。 回呼函式會傳回新的程式計數器,以在內容記錄中更新,然後用於一般還原內容。

傳回值

此函式不會傳回值。

規格需求

   
目標平台 Windows
標頭 winnt.h (包括 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

上下文

RtlCaptureCoNtext