Bagikan melalui


Makro KdPrint (wdm.h)

Makro KdPrint mengirim pesan ke debugger kernel.

KdPrint mengirim pesan hanya jika kondisi yang Anda tentukan berlaku. Info selengkapnya di bagian di bawah ini.

Panggilan ke KdPrint memerlukan tanda kurung ganda.

Sintaksis

void KdPrint(
  [in]  _x_
);

Parameter

[in] _x_

Menentukan penunjuk ke string format yang akan dicetak. String Format mendukung sebagian besar sintaks spesifikasi format printf. Namun, kode format Unicode (%C, %S, %lc, %ls, %wc, %ws, dan %wZ) hanya dapat digunakan dengan IRQL = PASSIVE_LEVEL. Rutinitas KdPrint tidak mendukung salah satu jenis titik mengambang (%f, %e, %E, %g, %G, %a, atau %A).

Mengembalikan nilai

Tidak

Komentar

KdPrint identik dengan rutinitas DbgPrint dalam kode yang dikompilasi untuk konfigurasi debug. Rutinitas ini tidak berpengaruh jika dikompilasi untuk konfigurasi rilis. Hanya driver mode kernel yang dapat memanggil rutinitas KdPrint.

KdPrint mengirim pesan hanya jika kondisi tertentu berlaku. Secara khusus, ini berperilaku seperti KdPrintEx dengan komponen DEFAULT dan tingkat kepentingan pesan DPFLTR_INFO_LEVEL. Dengan kata lain, dua panggilan fungsi berikut identik:

KdPrint (( Format, arguments ))

KdPrintEx (( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments ))

Untuk informasi selengkapnya tentang pemfilteran pesan, komponen, dan tingkat kepentingan pesan, lihat Membaca dan Memfilter Pesan Debugging.

Terlepas dari versi Windows mana yang Anda gunakan, disarankan agar Anda menggunakan KdPrintEx alih-alih KdPrint, karena KdPrintEx memungkinkan Anda mengontrol kondisi di mana pesan dikirim.

Kecuali itu benar-benar diperlukan, Anda tidak boleh mendapatkan string dari input pengguna atau proses lain dan meneruskannya ke KdPrint. Jika Anda menggunakan string yang tidak Anda buat, Anda harus memverifikasi bahwa ini adalah string format yang valid, dan bahwa kode format cocok dengan daftar argumen dalam jenis dan kuantitas. Praktik pengodean terbaik adalah agar semua string Format menjadi statis dan didefinisikan pada waktu kompilasi.

Tidak ada batas atas ukuran string Format atau jumlah argumen. Namun, setiap panggilan tunggal ke KdPrint hanya akan mengirimkan 512 byte informasi. Ada juga batas ukuran buffer DbgPrint. Lihat Buffer DbgPrint dan Debugger untuk detailnya.

Persyaratan

Syarat Nilai
Platform Target Desktop
Header wdm.h (termasuk Wdm.h)
Pustaka NtosKrnl.lib (Lihat DbgPrint.)
DLL NtosKrnl.exe

Lihat juga

DbgPrint

DbgPrintEx

KdPrintEx