Data Structures |
| union | PUNWIND_CODE |
| struct | PUNWIND_INFO |
Defines |
| #define | NDEBUG |
| #define | UNWIND_HISTORY_TABLE_NONE 0 |
| #define | UNWIND_HISTORY_TABLE_GLOBAL 1 |
| #define | UNWIND_HISTORY_TABLE_LOCAL 2 |
| #define | UWOP_PUSH_NONVOL 0 |
| #define | UWOP_ALLOC_LARGE 1 |
| #define | UWOP_ALLOC_SMALL 2 |
| #define | UWOP_SET_FPREG 3 |
| #define | UWOP_SAVE_NONVOL 4 |
| #define | UWOP_SAVE_NONVOL_FAR 5 |
| #define | UWOP_SAVE_XMM 6 |
| #define | UWOP_SAVE_XMM_FAR 7 |
| #define | UWOP_SAVE_XMM128 8 |
| #define | UWOP_SAVE_XMM128_FAR 9 |
| #define | UWOP_PUSH_MACHFRAME 10 |
| #define | UNW_FLAG_NHANDLER 0 |
| #define | UNW_FLAG_EHANDLER 1 |
| #define | UNW_FLAG_UHANDLER 2 |
| #define | UNW_FLAG_CHAININFO 4 |
Typedefs |
| typedef unsigned char | UBYTE |
Functions |
| PRUNTIME_FUNCTION NTAPI | RtlLookupFunctionTable (IN DWORD64 ControlPc, OUT PDWORD64 ImageBase, OUT PULONG Length) |
| | Locates the table of RUNTIME_FUNCTION entries for a code address.
|
| PRUNTIME_FUNCTION NTAPI | RtlLookupFunctionEntry (IN DWORD64 ControlPc, OUT PDWORD64 ImageBase, OUT PUNWIND_HISTORY_TABLE HistoryTable) |
| | Locates the RUNTIME_FUNCTION entry corresponding to a code address. http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx.
|
| BOOLEAN NTAPI | RtlAddFunctionTable (IN PRUNTIME_FUNCTION FunctionTable, IN DWORD EntryCount, IN DWORD64 BaseAddress) |
| BOOLEAN NTAPI | RtlDeleteFunctionTable (IN PRUNTIME_FUNCTION FunctionTable) |
| BOOLEAN NTAPI | RtlInstallFunctionTableCallback (IN DWORD64 TableIdentifier, IN DWORD64 BaseAddress, IN DWORD Length, IN PGET_RUNTIME_FUNCTION_CALLBACK Callback, IN PVOID Context, IN PCWSTR OutOfProcessCallbackDll) |
| void FORCEINLINE | SetReg (PCONTEXT Context, BYTE Reg, DWORD64 Value) |
| DWORD64 FORCEINLINE | GetReg (PCONTEXT Context, BYTE Reg) |
| void FORCEINLINE | PopReg (PCONTEXT Context, BYTE Reg) |
| static BOOLEAN __inline | RtlpTryToUnwindEpilog (PCONTEXT Context, ULONG64 ImageBase, PRUNTIME_FUNCTION FunctionEntry) |
| | Helper function that tries to unwind epilog instructions.
|
| PEXCEPTION_ROUTINE NTAPI | RtlVirtualUnwind (IN ULONG HandlerType, IN ULONG64 ImageBase, IN ULONG64 ControlPc, IN PRUNTIME_FUNCTION FunctionEntry, IN OUT PCONTEXT Context, OUT PVOID *HandlerData, OUT PULONG64 EstablisherFrame, IN OUT PKNONVOLATILE_CONTEXT_POINTERS ContextPointers) |
| VOID NTAPI | RtlUnwindEx (IN ULONG64 TargetFrame, IN ULONG64 TargetIp, IN PEXCEPTION_RECORD ExceptionRecord, IN PVOID ReturnValue, OUT PCONTEXT OriginalContext, IN PUNWIND_HISTORY_TABLE HistoryTable) |
| VOID NTAPI | RtlUnwind (IN PVOID TargetFrame, IN PVOID TargetIp, IN PEXCEPTION_RECORD ExceptionRecord, IN PVOID ReturnValue) |
| ULONG NTAPI | RtlWalkFrameChain (OUT PVOID *Callers, IN ULONG Count, IN ULONG Flags) |
| VOID NTAPI | RtlGetCallersAddress (OUT PVOID *CallersAddress, OUT PVOID *CallersCaller) |
| VOID NTAPI | RtlRaiseException (IN PEXCEPTION_RECORD ExceptionRecord) |