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

Keine

Bemerkungen

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

Das Windows Driver Kit (WDK) 8 und WDK 7 verwalten die DBG-Präprozessorkonstante definieren entsprechend für Debug (Check) und Release (free). Weitere Informationen finden Sie unter Bedingte Kompilierung und Buildumgebung.

KdPrintEx übergibt entweder die angegebene Zeichenfolge an den Kerneldebugger oder macht gar nichts, abhängig von den Werten von ComponentId, Level und den entsprechenden Komponentenfiltermasken. Ausführliche Informationen finden Sie unter Lesen und Filtern von Debugnachrichten.

Sofern dies nicht unbedingt erforderlich ist, sollten Sie keine Zeichenfolge aus einer Benutzereingabe 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 mit der Argumentliste in Typ und Menge übereinstimmen. Die bewährte Codierungsmethode besteht darin, dass alle Formatzeichenfolgen zur Kompilierzeit statisch und definiert sind.

Es gibt keine Obergrenze für die Größe der Formatzeichenfolge oder die Anzahl von Argumenten. Jeder einzelne Aufruf von KdPrintEx überträgt jedoch nur 512 Bytes an Informationen. Es gibt auch eine Begrenzung für die Größe des DbgPrint-Puffers. Weitere Informationen finden Sie unter DbgPrint-Puffer und Debugger .

Diese Routine ist 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. Hierbei muss es sich um eine der Komponentennamenfilter-IDs handeln, die in der Headerdatei dpfilter.h definiert sind. Um zu vermeiden, dass die Ausgabe Ihres Treibers mit der Ausgabe von Windows-Komponenten vermischt wird, 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

  • Formatieren [in]

    Gibt einen Zeiger auf die zu druckende Formatzeichenfolge an. Die Formatzeichenfolgeunterstützt die meistenDruckformatspezifikationsfelder. Die Unicode-Formatcodes (%C, %S, %lc, %ls, %wc, %ws und %wZ) können jedoch nur mit IRQL = PASSIVE_LEVEL verwendet werden. Die KdPrintEx-Routine unterstützt keinen der Gleitkommatypen (%f, %e, %E, %g, %G, %a oder %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 von Debugnachrichten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höher.
Zielplattform Desktop
Kopfzeile wdm.h (einschließen von Wdm.h)
Bibliothek NtosKrnl.lib (siehe DbgPrintEx.)
DLL NtosKrnl.exe

Weitere Informationen

DbgPrint

DbgPrintEx

KdPrint