Bagikan melalui


Fungsi RtlRestoreContext (winnt.h)

Memulihkan konteks pemanggil ke rekaman konteks yang ditentukan.

Sintaks

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

Parameter

[in] ContextRecord

Penunjuk ke struktur CONTEXT .

[in] ExceptionRecord

Penunjuk ke struktur EXCEPTION_RECORD . Parameter ini bersifat opsional dan biasanya harus NULL.

Catatan pengecualian digunakan terutama dengan dukungan lompatan panjang dan penangkapan C++. Jika anggota ExceptionCode STATUS_LONGJUMP, anggota ExceptionInformation berisi pointer ke jump buffer. RtlRestoreContext akan menyalin status non-volatil dari jump buffer ke rekaman konteks sebelum rekaman konteks dipulihkan.

Jika anggota ExceptionCode STATUS_UNWIND_CONSOLIDATE, anggota ExceptionInformation berisi penunjuk ke fungsi panggilan balik, seperti handler tangkapan. RtlRestoreContext mengonsolidasikan bingkai panggilan antara bingkai dan bingkai yang ditentukan dalam rekaman konteks sebelum memanggil fungsi panggilan balik. Ini menyembunyikan bingkai dari penanganan pengecualian apa pun yang mungkin terjadi dalam fungsi panggilan balik. Perbedaan antara ini dan unwind yang khas adalah bahwa data pada tumpukan masih ada, sehingga data bingkai seperti objek lemparan masih tersedia. Fungsi panggilan balik mengembalikan penghitung program baru untuk diperbarui dalam rekaman konteks, yang kemudian digunakan dalam konteks pemulihan normal.

Mengembalikan nilai

Fungsi ini tidak mengembalikan nilai.

Persyaratan

   
Target Platform Windows
Header winnt.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

KONTEKS

RtlCaptureContext