Compartir a través de


Función RtlRestoreContext (winnt.h)

Restaura el contexto del autor de la llamada al registro de contexto especificado.

Sintaxis

NTSYSAPI VOID __cdecl RtlRestoreContext(
  PCONTEXT          ContextRecord,
  _EXCEPTION_RECORD *ExceptionRecord
);

Parámetros

[in] ContextRecord

Puntero a una estructura CONTEXT .

[in] ExceptionRecord

Puntero a una estructura de EXCEPTION_RECORD . Este parámetro es opcional y normalmente debe ser NULL.

Un registro de excepción se usa principalmente con el salto largo y la compatibilidad con capturas de C++. Si el miembro ExceptionCode es STATUS_LONGJUMP, el miembro ExceptionInformation contiene un puntero a un búfer de salto. RtlRestoreContext copiará el estado no volátil del búfer de salto en el registro de contexto antes de restaurar el registro de contexto.

Si el miembro ExceptionCode es STATUS_UNWIND_CONSOLIDATE, el miembro ExceptionInformation contiene un puntero a una función de devolución de llamada, como un controlador catch. RtlRestoreContext consolida los fotogramas de llamada entre su marco y el marco especificado en el registro de contexto antes de llamar a la función de devolución de llamada. Esto oculta los fotogramas de cualquier control de excepciones que se pueda producir en la función de devolución de llamada. La diferencia entre esto y un desenredado típico es que los datos de la pila siguen estando presentes, por lo que los datos de fotogramas, como un objeto throw, siguen estando disponibles. La función de devolución de llamada devuelve un nuevo contador de programa que se va a actualizar en el registro de contexto, que luego se usa en un contexto de restauración normal.

Valor devuelto

Esta función no devuelve ningún valor.

Requisitos

   
Plataforma de destino Windows
Encabezado winnt.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CONTEXT

RtlCaptureContext