Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mendaftarkan handler pengecualian runtime kustom yang digunakan untuk menyediakan Pelaporan Galat Windows kustom (WER) untuk crash.
Sintaks
HRESULT WerRegisterRuntimeExceptionModule(
[in] PCWSTR pwszOutOfProcessCallbackDll,
[in, optional] PVOID pContext
);
Parameter
[in] pwszOutOfProcessCallbackDll
Nama DLL penangan pengecualian yang akan didaftarkan.
[in, optional] pContext
Penunjuk ke informasi konteks arbitrer yang diteruskan ke fungsi panggilan balik handler.
Mengembalikan nilai
Fungsi ini mengembalikan S_OK pada keberhasilan atau kode kesalahan pada kegagalan, termasuk kode kesalahan berikut.
| Menampilkan kode | Deskripsi |
|---|---|
| WER_E_INVALID_STATE | Status proses tidak valid. Misalnya, prosesnya dalam mode pemulihan aplikasi. |
| HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) | Jumlah modul pengecualian runtime terdaftar melebihi batas. Proses dapat mendaftar hingga penangan WER_MAX_REGISTERED_RUNTIME_EXCEPTION_MODULES. |
Keterangan
Handler pengecualian adalah DLL di luar proses yang dimuat layanan WER saat terjadi crash atau pengecualian yang tidak tertangani. DLL harus menerapkan dan mengekspor fungsi berikut:
- OutOfProcessExceptionEventCallback
- OutOfProcessExceptionEventSignatureCallback
- OutOfProcessExceptionEventDebuggerLaunchCallback
(DLL juga harus menyertakan titik masuk DllMain .)
Menggunakan handler pengecualian lebih aman dan andal untuk melaporkan informasi crash daripada fitur pelaporan peristiwa dalam proses saat ini. Selain itu, fitur pelaporan peristiwa generik saat ini hanya cocok untuk melaporkan kesalahan non-fatal.
Fungsi ini mengharuskan pwszOutOfProcessCallbackDll DLL disertakan dalam daftar modul handler pengecualian WER dalam registri. Setelah mendaftarkan handler pengecualian, jika proses crash atau menimbulkan pengecualian yang tidak tertangani, layanan WER memuat handler pengecualian Anda dan memanggil fungsi panggilan balik OutOfProcessExceptionEventCallback ., yang Anda gunakan untuk menyatakan klaim Anda pada crash dan memberikan nama peristiwa dan jumlah parameter laporan. Perhatikan bahwa jika proses mendaftarkan lebih dari satu handler pengecualian, layanan memanggil setiap handler hingga salah satu handler mengklaim crash. Jika tidak ada handler yang mengklaim crash, WER default ke pelaporan crash asli.
Jika handler pengecualian mengklaim pengecualian, layanan WER memanggil fungsi panggilan balik OutOfProcessExceptionEventSignatureCallback , yang menyediakan parameter pelaporan yang secara unik menentukan masalah. Kemudian, layanan WER memanggil panggilan balik OutOfProcessExceptionEventDebuggerLaunchCallback untuk menentukan apakah akan menawarkan opsi kepada pengguna untuk meluncurkan debugger atau meluncurkan debugger secara otomatis. Handler juga dapat menentukan string peluncuran debugger kustom, yang akan menggantikan string default (defaultnya adalah debugger yang ditentukan dalam kunci registri AeDebug).
Setelah handler memberikan nama peristiwa, parameter pelaporan, dan pengaturan peluncuran debugger, alur pelaporan kesalahan lainnya berlanjut dengan cara yang biasa.
Anda harus memanggil fungsi WerUnregisterRuntimeExceptionModule untuk menghapus pendaftaran sebelum proses Anda keluar. Proses dapat mendaftar hingga penangan WER_MAX_REGISTERED_RUNTIME_EXCEPTION_MODULES.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
| Target Platform | Windows |
| Header | werapi.h |
| Pustaka | Kernel32.lib |
| DLL | Kernel32.dll |