Bagikan melalui


Fungsi WerRegisterRuntimeExceptionModule (werapi.h)

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:

(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

Lihat juga

Pelaporan Galat Windows