Bagikan melalui


Makro KdPrintEx (wdm.h)

Makro KdPrintEx mengirimkan string ke debugger kernel jika kondisi yang Anda tentukan terpenuhi.

Panggilan ke KdPrintEx memerlukan tanda kurung ganda.

Sintaksis

void KdPrintEx(
   _x_
);

Parameter

_x_

Menentukan argumen untuk string format, seperti dalam printf.

Mengembalikan nilai

Tidak

Komentar

KdPrintEx identik dengan rutinitas DbgPrintEx dalam kode yang dikompilasi untuk konfigurasi debug. Rutinitas ini tidak berpengaruh dalam kode yang dikompilasi untuk build rilis. Hanya driver mode kernel yang dapat memanggil rutinitas KdPrintEx.

KdPrintEx meneruskan string yang ditentukan ke debugger kernel atau tidak melakukan apa pun, tergantung pada nilai ComponentId, Level, dan masker filter komponen yang sesuai. Untuk detailnya, lihat Membaca dan Memfilter Pesan Debugging.

Kecuali itu benar-benar diperlukan, Anda tidak boleh mendapatkan string dari input pengguna atau proses lain dan meneruskannya ke KdPrintEx. 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 KdPrintEx hanya akan mengirimkan 512 byte informasi. Ada juga batas ukuran buffer DbgPrint. Lihat Buffer DbgPrint dan Debugger untuk detailnya.

Rutinitas ini didefinisikan dalam ntddk.h dan ndis.h; ID filter komponen didefinisikan dalam dpfilter.h, ndis.h, dan wdm.h. Sertakan ntddk.h atau ndis.h.

Berikut adalah argumennya:

  • ComponentId [in]

    Menentukan komponen yang memanggil rutinitas ini. Ini harus menjadi salah satu ID filter nama komponen yang ditentukan dalam file header dpfilter.h. Untuk menghindari pencampuran output driver Anda dengan output komponen Windows, Anda hanya harus menggunakan nilai berikut untuk ComponentId:

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • Format [in]

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

  • Tingkat [in]

    Menentukan tingkat keparahan pesan ini. Ini bisa berupa bilangan bulat 32-bit. Nilai antara 0 dan 31 (inklusif) diperlakukan berbeda dari nilai antara 32 dan 0xFFFFFFFF. Untuk detailnya, lihat Membaca dan Memfilter Pesan Debugging.

Persyaratan

Syarat Nilai
klien minimum yang didukung Tersedia di Microsoft Windows XP dan yang lebih baru.
Platform Target Desktop
Header wdm.h (termasuk Wdm.h)
Pustaka NtosKrnl.lib (Lihat DbgPrintEx.)
DLL NtosKrnl.exe

Lihat juga

DbgPrint

DbgPrintEx

KdPrint