(winnt.h) RtlVirtualUnwind 函式
擷取指定函式內容前面的函式調用內容。
注意
此函式並未在所有處理器平台上實作,而且在每個支援它的平臺上實作不同。 下列原型會列出所有可能的參數及其應用程式。 進一步閱讀處理器特定的函式原型。
語法
NTSYSAPI PEXCEPTION_ROUTINE RtlVirtualUnwind(
[in] DWORD HandlerType,
[in] DWORD64 ImageBase,
[in] DWORD64 ControlPc,
[in] PRUNTIME_FUNCTION FunctionEntry,
[in, out] PCONTEXT ContextRecord,
[out] PVOID *HandlerData,
[out] PDWORD64 EstablisherFrame,
[in, out, optional] PKNONVOLATILE_CONTEXT_POINTERS ContextPointers
);
參數
[in] HandlerType
處理常式類型。 此參數可以是下列其中一個值。
此參數只存在於 x64 上。
值 | 意義 |
---|---|
|
函式沒有處理程式。 |
|
函式具有應該呼叫的例外狀況處理程式。 |
|
函式具有在回溯例外狀況時應該呼叫的終止處理程式。 |
|
FunctionEntry 成員是上一個函式數據表項目的內容。 |
[in] ImageBase
函式所屬模組的基位址。
[in] ControlPc
控件離開指定函式的虛擬位址。
[in] FunctionEntry
指定之函式之函式數據表項目的位址。 若要取得函式數據表專案,請呼叫 RtlLookupFunctionEntry 函式。
[in, out] ContextRecord
CONTEXT 結構的指標,表示上一個框架的內容。
[out] HandlerData
計算機的位置。 如果此參數為 0,則電腦位於函式的序言、結尾或 Null 框架區域。 如果此參數為 1,計算機會位於函式的主體中。
這個參數不存在於 x64 上。
[out] EstablisherFrame
接收建立器框架指標值的 FRAME_POINTERS 結構的指標。 只有在 InFunction 為 1
時,才會定義實際的框架指標。
此參數的類型 為 x64 上的 PULONG64 。
[in, out, optional] ContextPointers
內容指標結構的選擇性指標。
傳回值
此函式會傳回 EXCEPTION_ROUTINE 回呼函式的指標。
備註
x64 結尾標記的完整清單如下:
- Ret
- ret n
- rep ret
- jmp imm8 | imm32 ,其中目標不在正在復原的函式之外
- jmp qword ptr imm32
- rex.w jmp reg
規格需求
目標平台 | Windows |
標頭 | winnt.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |