Freigeben über


KdPrintEx-Makro (wdm.h)

Das KdPrintEx Makro sendet eine Zeichenfolge an den Kerneldebugger, wenn die von Ihnen angegebenen Bedingungen erfüllt sind.

Ein Aufruf von KdPrintEx erfordert doppelte Klammern.

Syntax

void KdPrintEx(
   _x_
);

Parameter

_x_

Gibt Argumente für die Formatzeichenfolge an, wie in printf.

Rückgabewert

Nichts

Bemerkungen

KdPrintEx ist identisch mit der DbgPrintEx- Routine im Code, der für eine Debugkonfiguration kompiliert wird. Diese Routine hat keine Auswirkung auf Code, der für einen Releasebuild kompiliert wird. Nur Kernelmodustreiber können die KdPrintEx Routine aufrufen.

KdPrintEx entweder die angegebene Zeichenfolge an den Kerneldebugger übergibt oder überhaupt nichts ausführt, abhängig von den Werten ComponentId, Levelund den entsprechenden Komponentenfiltermasken. Ausführliche Informationen finden Sie unter Lesen und Filtern des Debuggens von Nachrichten.

Sofern dies nicht unbedingt erforderlich ist, sollten Sie keine Zeichenfolge von Benutzereingaben oder einem anderen Prozess abrufen und an KdPrintExübergeben. Wenn Sie eine Zeichenfolge verwenden, die Sie nicht erstellt haben, müssen Sie überprüfen, ob es sich um eine gültige Formatzeichenfolge handelt und dass die Formatcodes der Argumentliste in Typ und Menge entsprechen. Die bewährte Codierungspraxis ist für alle Format Zeichenfolgen, die zur Kompilierungszeit statisch und definiert werden.

Es gibt keine Obergrenze für die Größe der Format Zeichenfolge oder die Anzahl der Argumente. Jeder einzelne Aufruf von KdPrintEx überträgt jedoch nur 512 Byte Informationen. Es gibt auch einen Grenzwert für die Größe des DbgPrint-Puffers. Weitere Informationen finden Sie unter "DbgPrint-Puffer" und "Debugger".

Diese Routine wird in ntddk.h und ndis.h definiert; Komponentenfilter-IDs werden in dpfilter.h, ndis.h und wdm.h definiert. Schließen Sie ntddk.h oder ndis.h ein.

Dies sind die Argumente:

  • ComponentId [in]

    Gibt die Komponente an, die diese Routine aufruft. Dies muss eine der Komponentennamensfilter-IDs sein, die in der Headerdatei "dpfilter.h" definiert sind. Um das Mischen der Treiberausgabe mit der Ausgabe von Windows-Komponenten zu vermeiden, sollten Sie nur die folgenden Werte für ComponentId-verwenden:

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • Format [in]

    Gibt einen Zeiger auf die zu druckde Formatzeichenfolge an. Die Format--Zeichenfolge unterstützt die meisten Formatspezifikationsfelder. Die Unicode-Formatcodes (%C, %S, %lc, %ls, %wc, %wsund %wZ) können jedoch nur mit IRQL = PASSIVE_LEVEL verwendet werden. Die KdPrintEx Routine unterstützt keine der Gleitkommatypen (%f, %e, %E, %g, %G, %aoder %A).

  • Ebene [in]

    Gibt den Schweregrad dieser Nachricht an. Dies kann eine beliebige 32-Bit-Ganzzahl sein. Werte zwischen 0 und 31 (einschließlich) werden anders behandelt als Werte zwischen 32 und 0xFFFFFFFF. Ausführliche Informationen finden Sie unter Lesen und Filtern des Debuggens von Nachrichten.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höher.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h)
Library NtosKrnl.lib (Siehe DbgPrintEx.)
DLL- NtosKrnl.exe

Siehe auch

DbgPrint-

DbgPrintEx-

KdPrint-