Función RtlVirtualUnwind (winnt.h)
Recupera el contexto de invocación de la función que precede al contexto de función especificado.
Nota
Esta función no se implementa en todas las plataformas de procesador y la implementación es diferente en cada plataforma que la admita. En el siguiente prototipo se enumeran todos los parámetros potenciales y su aplicación. Lea más información sobre los prototipos de función específicos del procesador.
Sintaxis
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
);
Parámetros
[in] HandlerType
Tipo de controlador. Este parámetro puede ser uno de los valores siguientes.
Este parámetro solo está presente en x64.
[in] ImageBase
Dirección base del módulo al que pertenece la función.
[in] ControlPc
Dirección virtual donde el control dejó la función especificada.
[in] FunctionEntry
Dirección de la entrada de la tabla de funciones para la función especificada. Para obtener la entrada de la tabla de funciones, llame a la función RtlLookupFunctionEntry .
[in, out] ContextRecord
Puntero a una estructura CONTEXT que representa el contexto del marco anterior.
[out] HandlerData
Ubicación del equipo. Si este parámetro es 0, el equipo se encuentra en el prólogo, el epílogo o una región de marco null de la función. Si este parámetro es 1, el equipo se encuentra en el cuerpo de la función.
Este parámetro no está presente en x64.
[out] EstablisherFrame
Puntero a una estructura FRAME_POINTERS que recibe el valor del puntero del marco de establecimiento. El puntero de marco real solo se define si InFunction es 1
.
Este parámetro es de tipo PULONG64 en x64.
[in, out, optional] ContextPointers
Puntero opcional a una estructura de punteros de contexto.
Valor devuelto
Esta función devuelve un puntero a una función de devolución de llamada EXCEPTION_ROUTINE.
Comentarios
La lista completa de marcadores de epílogo para x64 es la siguiente:
- Ret
- ret n
- rep ret
- jmp imm8 | imm32 donde el destino está fuera de la función que se desenlazado
- jmp qword ptr imm32
- rex.w jmp reg
Requisitos
Plataforma de destino | Windows |
Encabezado | winnt.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |