Funzione RtlVirtualUnwind (winnt.h)
Recupera il contesto di chiamata della funzione che precede il contesto di funzione specificato.
Nota
Questa funzione non viene implementata in tutte le piattaforme del processore e l'implementazione è diversa in ogni piattaforma che la supporta. Il prototipo seguente elenca tutti i parametri potenziali e l'applicazione. Leggere altre informazioni per i prototipi di funzioni specifici del processore.
Sintassi
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
);
Parametri
[in] HandlerType
Tipo di gestore. Questo parametro può avere uno dei valori seguenti.
Questo parametro è presente solo in x64.
[in] ImageBase
Indirizzo di base del modulo a cui appartiene la funzione.
[in] ControlPc
Indirizzo virtuale in cui il controllo ha lasciato la funzione specificata.
[in] FunctionEntry
Indirizzo della voce della tabella della funzione per la funzione specificata. Per ottenere la voce della tabella delle funzioni, chiamare la funzione RtlLookupFunctionEntry .
[in, out] ContextRecord
Puntatore a una struttura CONTEXT che rappresenta il contesto del frame precedente.
[out] HandlerData
Posizione del PC. Se questo parametro è 0, il PC si trova nel prologo, nell'epilogo o in un'area del frame Null della funzione. Se questo parametro è 1, il PC si trova nel corpo della funzione.
Questo parametro non è presente in x64.
[out] EstablisherFrame
Puntatore a una struttura FRAME_POINTERS che riceve il valore del puntatore del frame di definizione. Il puntatore a fotogramma reale viene definito solo se InFunction è 1
.
Questo parametro è di tipo PULONG64 in x64.
[in, out, optional] ContextPointers
Puntatore facoltativo a una struttura di puntatori di contesto.
Valore restituito
Questa funzione restituisce un puntatore a una funzione di callback EXCEPTION_ROUTINE .
Commenti
L'elenco completo dei marcatori epilogo per x64 è il seguente:
- Ret
- ret n
- rep ret
- jmp imm8 | imm32 in cui la destinazione non si trova all'esterno della funzione
- jmp qword ptr imm32
- rex.w jmp reg
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | winnt.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |