__fastfail
Khusus Microsoft
Segera mengakhiri proses panggilan dengan overhead minimum.
Sintaks
__declspec(noreturn) void __fastfail(unsigned int code);
Parameter
code
[di] Konstanta FAST_FAIL_<description>
simbolis dari winnt.h atau wdm.h yang menunjukkan alasan penghentian proses.
Nilai hasil
Intrinsik __fastfail
tidak kembali.
Keterangan
Intrinsik __fastfail
menyediakan mekanisme untuk permintaan kegagalan cepat—cara bagi proses yang berpotensi rusak untuk meminta penghentian proses segera. Kegagalan kritis yang mungkin telah merusak status program dan tumpukan di luar pemulihan tidak dapat ditangani oleh fasilitas penanganan pengecualian reguler. Gunakan __fastfail
untuk mengakhiri proses menggunakan overhead minimal.
Secara internal, __fastfail
diimplementasikan dengan menggunakan beberapa mekanisme khusus arsitektur:
Arsitektur | Instruksi | Lokasi argumen kode |
---|---|---|
x86 | 0x29 int | ecx |
x64 | 0x29 int | rcx |
ARM | Opcode 0xDEFB | r0 |
ARM64 | Opcode 0xF003 | x0 |
Permintaan kegagalan cepat mandiri dan biasanya hanya memerlukan dua instruksi untuk dijalankan. Setelah permintaan kegagalan cepat dijalankan, kernel kemudian mengambil tindakan yang sesuai. Dalam kode mode pengguna, tidak ada dependensi memori di luar penunjuk instruksi itu sendiri ketika peristiwa kegagalan cepat dinaikkan. Itu memaksimalkan keandalannya, bahkan dalam kasus kerusakan memori yang parah.
Argumen code
, salah FAST_FAIL_<description>
satu konstanta simbolis dari winnt.h atau wdm.h, menjelaskan jenis kondisi kegagalan. Ini dimasukkan ke dalam laporan kegagalan dengan cara khusus lingkungan.
Permintaan kegagalan cepat mode pengguna muncul sebagai pengecualian kesempatan kedua yang tidak dapat dilanjutkan dengan kode pengecualian 0xC0000409, dan dengan setidaknya satu parameter pengecualian. Parameter pengecualian pertama adalah nilainya code
. Kode pengecualian ini menunjukkan kepada Pelaporan Galat Windows (WER) dan infrastruktur debugging bahwa proses rusak, dan bahwa tindakan dalam proses minimal harus diambil sebagai respons terhadap kegagalan. Permintaan kegagalan cepat mode kernel diimplementasikan dengan menggunakan kode pemeriksaan bug khusus, KERNEL_SECURITY_CHECK_FAILURE
(0x139). Dalam kedua kasus, tidak ada penangan pengecualian yang dipanggil karena program ini diharapkan dalam keadaan rusak. Jika debugger ada, akan diberikan kesempatan untuk memeriksa status program sebelum penghentian.
Dukungan untuk mekanisme kegagalan cepat asli dimulai di Windows 8. Sistem operasi Windows yang tidak mendukung instruksi kegagalan cepat secara asli biasanya akan memperlakukan permintaan gagal yang cepat sebagai pelanggaran akses, atau sebagai pemeriksaan UNEXPECTED_KERNEL_MODE_TRAP
bug. Dalam kasus ini, program masih dihentikan, tetapi belum tentu secepatnya.
__fastfail
hanya tersedia sebagai intrinsik.
Persyaratan
Intrinsik | Arsitektur |
---|---|
__fastfail |
x86, x64, ARM, ARM64 |
File header<intrin.h>
END Khusus Microsoft
Baca 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