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 |