Compartilhar via


Função RtlRestoreContext (winnt.h)

Restaura o contexto do chamador para o registro de contexto especificado.

Sintaxe

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

Parâmetros

[in] ContextRecord

Um ponteiro para uma estrutura CONTEXT .

[in] ExceptionRecord

Um ponteiro para uma estrutura EXCEPTION_RECORD . Esse parâmetro é opcional e normalmente deve ser NULL.

Um registro de exceção é usado principalmente com o salto em distância e o suporte a catch-throw do C++. Se o membro ExceptionCode for STATUS_LONGJUMP, o membro ExceptionInformation conterá um ponteiro para um buffer de salto. RtlRestoreContext copiará o estado não volátil do buffer de salto para o registro de contexto antes que o registro de contexto seja restaurado.

Se o membro ExceptionCode for STATUS_UNWIND_CONSOLIDATE, o membro ExceptionInformation conterá um ponteiro para uma função de retorno de chamada, como um manipulador catch. RtlRestoreContext consolida os quadros de chamada entre seu quadro e o quadro especificado no registro de contexto antes de chamar a função de retorno de chamada. Isso oculta quadros de qualquer tratamento de exceção que possa ocorrer na função de retorno de chamada. A diferença entre esse e um desenrolamento típico é que os dados na pilha ainda estão presentes, portanto, dados de quadro, como um objeto throw, ainda estão disponíveis. A função de retorno de chamada retorna um novo contador de programa a ser atualizado no registro de contexto, que é usado em um contexto de restauração normal.

Retornar valor

Essa função não retorna um valor.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho winnt.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CONTEXTO

RtlCaptureContext