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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk