Bagikan melalui


Fungsi KdRefreshDebuggerNotPresent (wdm.h)

Makro KdRefreshDebuggerNotPresent me-refresh nilai variabel kernel global KD_DEBUGGER_NOT_PRESENT .

Sintaks

BOOLEAN KdRefreshDebuggerNotPresent();

Mengembalikan nilai

KdRefreshDebuggerNotPresent mengembalikan nilai KD_DEBUGGER_NOT_PRESENT.

Keterangan

Ketika KdRefreshDebuggerNotPresent dipanggil, KdRefreshDebuggerNotPresent memaksa nilai KD_DEBUGGER_NOT_PRESENT diperbarui untuk mencerminkan apakah debugger kernel saat ini dilampirkan. Nilai yang diperbarui ini juga digunakan sebagai nilai pengembalian dari rutinitas ini.

Jika debugger kernel baru-baru ini dilampirkan atau dihapus, nilai KD_DEBUGGER_NOT_PRESENT mungkin tidak mencerminkan status baru. Jika Anda menduga ini telah terjadi, Anda harus memanggil KdRefreshDebuggerNotPresent untuk menyegarkan nilai variabel ini. Setelah panggilan ini, Anda dapat menggunakan nilai KD_DEBUGGER_NOT_PRESENT atau nilai pengembalian KdRefreshDebuggerNotPresent untuk menentukan apakah debugger kernel ada.

KD_DEBUGGER_NOT_PRESENT dapat dimodifikasi oleh Windows atau biner mode kernel lainnya. Oleh karena itu, ada kemungkinan bahwa nilai pengembalian terbaru dari KdRefreshDebuggerNotPresent mungkin tidak cocok dengan nilai KD_DEBUGGER_NOT_PRESENT saat ini.

Contoh berikut menunjukkan cara menggunakan KdRefreshDebuggerNotPresent:

if (KdRefreshDebuggerNotPresent() == FALSE)
{
    //  A kernel debugger is active.
    DbgPrint("A problem occurred\n");
 DbgBreakPoint();
}
else
{
 //  No kernel debugger attached, or kernel debugging not enabled.
 KeBugCheckEx(...);
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe

Lihat juga

Menentukan apakah Debugger Terlampir

KD_DEBUGGER_ENABLED

KD_DEBUGGER_NOT_PRESENT