Fungsi DbgPrint (wdm.h)

Rutinitas DbgPrint mengirim pesan ke debugger kernel saat kondisi yang Anda tentukan berlaku (lihat bagian Keterangan di bawah).

Sintaks

ULONG DbgPrint(
  PCSTR Format,
  ...   
);

Parameter

Format

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

...

Menentukan argumen untuk string format, seperti dalam printf.

Nilai kembali

Jika berhasil, DbgPrint mengembalikan kode NTSTATUS STATUS_SUCCESS; jika tidak, ia mengembalikan kode kesalahan yang sesuai.

Keterangan

DbgPrint dan DbgPrintEx dapat dipanggil di IRQL<=DIRQL. Namun, kode format Unicode (%C, %S, %lc, %ls, %wc, %ws, dan %wZ) hanya dapat digunakan di IRQL=PASSIVE_LEVEL. Selain itu, karena debugger menggunakan interupsi interproses (IPI) untuk berkomunikasi dengan prosesor lain, memanggil DbgPrint di IRQL>DIRQL dapat menyebabkan kebuntuan.

Hanya driver mode kernel yang dapat memanggil rutinitas DbgPrint .

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

DbgPrint ( Format, arguments )

DbgPrintEx ( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments )

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

Disarankan agar Anda menggunakan DbgPrintEx alih-alih DbgPrint, karena ini memungkinkan Anda untuk mengontrol kondisi di mana pesan dikirim.

Kecuali jika benar-benar diperlukan, Anda tidak boleh mendapatkan string dari input pengguna atau proses lain dan meneruskannya ke DbgPrint. 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 pengkodean terbaik adalah agar semua string Format statis dan didefinisikan pada waktu kompilasi.

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

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header wdm.h (termasuk Wdm.h)
Pustaka NtDll.lib (mode pengguna); NtosKrnl.lib (mode kernel)
DLL NtDll.dll (mode pengguna); NtosKrnl.exe (mode kernel)
IRQL IRQL <= DIRQL (lihat bagian Komentar)

Lihat juga

DbgPrintEx

KdPrint

KdPrintEx