Ausführliche Debugverfolgung in verschiedenen Treiber und Subsysteme aktivieren

Zusammenfassung

Beim Debuggen von Gerätetreibern ist wichtig, dass die Treiber und die verbundenen Teilsysteme ausführliche Debugverfolgung erhalten.

Die meisten Treiber von Microsoft und Subsysteme verwenden globale Variablen und vordefinierte Werte die Ausführlichkeit der Protokollierung Debuginformationen steuern, die an den Debugger gesendet wird.

Dieser Artikel behandelt die folgenden Themen:
  • Zum Aktivieren und die Debug-Protokollierungsstufe steuern, indem ein Kernel-Debugger und Registrierung Werte.
  • Für eine bestimmte Klasse von Treibern können Sie die entsprechenden Debuggererweiterungen zu aktivieren Debug-Verfolgung.
  • Die Unterschiede zwischen aktivieren debug-Verfolgung in Windows 2000 und Windows XP.

Weitere Informationen

Wichtig Dieser Artikel enthält Informationen zum Ausführen von chk-Dateien für die Entwicklung und für Testzwecke. Microsoft Product Support Services (PSS) unterstützt keine Systeme, die CHK-Dateien installiert, wenn Sie vom PSS installieren chk-Dateien aufgefordert wurden, um ein Problem zu isolieren. Vor der Installation von chk-Dateien in einem Produktionssystem sicherstellen Sie, um das System zu sichern und stellen Sie sicher, dass Sie wissen, wie die ersetzte Datei wiederherstellen, wenn ein Problem auftritt.

Weitere Informationen zu chk-Dateien finden Sie in den folgenden zu Artikeln der Microsoft Knowledge Base:

103659 und Hardware Setup reagiert; wie Sie "Ntdetect.com"

320040 Verwendung Ntdetect.chk Hardware-Probleme in Windows 2000

Zeigen Sie Informationen zum Sichern und Wiederherstellen des Systems Windows 2000-Hilfe und Support. Weitere Informationen NTbackups klicken Sie auf die folgenden Artikelnummern klicken, um die Artikel der Microsoft Knowledge Base:

240363 Verwendung des Sicherungsprogramms zum Sichern und Wiederherstellen des Systemstatus in Windows 2000

Die Anbieter von backup erhalten Sie Informationen zur Verwendung ihres Produkts.


Hinweis Die folgende Debuginformationen vorbehalten jederzeit und dient nur zum Debuggen von Treiber. Beachten Sie außerdem, dass Debuginformationen nicht besonders an Entwickler.

Video-Miniport Debuggen

Beachten Sie Folgendes zum video-Miniport Debuggen:
  • Es erfordert Testbuilds Port und Miniport Treiber.
  • Eine Debuggererweiterung wird nicht verwendet.
  • Sie können Debugverfolgung Festlegen globaler Variablen (oder Variablen).
  • Variablennamen in Windows 2000 unterscheiden sich von denen in Windows XP.
  • In Windows 2000 können Sie Debug Verfolgung über die Registrierung oder der Debugger wie folgt:
    • Legen Sie den Wert von VideoDebugLevel (0-3) in der Registrierung wie folgt: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName\DeviceN VideoDebugLevel:REG_DWORD: 2
    • Oder der Debugger wie folgt:
      ED-Videoprt. VideoDebugLevel 2
  • Den video-Port auf einem Windows XP-basierten Computer neue DbgPrintEx -Funktion (siehe Abschnitt "HINWEISE").

    Die folgenden Variablen sind für Treiber definiert:
    Kd_IHVVIDEO_Mask
    Kd_VIDEO_Mask
    Kd_VIDEOPRT_Mask
    Zum Festlegen einer Maske folgendermaßen Sie vor:
    • Fügen Sie die Maske, die in der Registrierung. Beispiel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug drucken Filter "IHVVIDEO" = DWORD: 0xffffffff
    • Oder im Debugger wie folgt:
      ED Kd_IHVVIDEO_Mask 0xffffffff

1394 zum Debuggen

Beachten Sie Folgendes zum 1394 zu debuggen:
  • Es erfordert ein getestetes Build oder Builds 1394 Module aktiviert.
  • Unter Windows 2000 und Windows XP-basierten Systemen die entsprechende globale Variable durch den Debugger fest Beispiel:
    ED ohci1394! Ohcidebuglevel 6
    ModulnameDebug SymbolsBereich
    OHCI1394.SYSohcidebuglevel1-6
    SBP2PORT.SYSsbp2debuglevel1-4
    1394BUS.SYSbusdebuglevel1-5
    Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

    259855 zum Aktivieren von Debuggen druckt in IEEE 1394-Treiber

USB-debugging

Beachten Sie Folgendes zum Debuggen von universalen serial Bus (USB):
  • Es erfordert ein getestetes Build oder Builds USB-Module aktiviert.
  • Auf einem Windows 2000-basierten System müssen Sie die entsprechende globale Variable durch den Debugger. Beispiel:
    ED USBD! USBD_Debug_Trace_Level 2
    ModulnameDebug SymbolsBereich
    UHCD.SYSUHCD_Debug_Trace_Level0-2
    OPENHCI.SYSOHCI_Debug_Trace_Level0-2
    USBHUB.SYSUSBH_Debug_Trace_Level0-3
    USBD.SYSUSBD_Debug_Trace_Level0-3
  • Verwenden Sie die folgenden Parameter auf einem Windows XP-System.
    ModulnameDebug SymbolsBereich
    USBPORT.SYSUSBPORT_Debug_Trace_Level0-4
    USBCCGP.SYSDbgVerbose0 oder 1
    USBHUB.SYSUSBH_Debug_Trace_Level0-3
    USBD.SYSUSBD_Debug_Trace_Level0-3
    USBPORT.SYSUSBPORT_CatcTrapEnable0-1
  • Alle USB-Miniporttreiber verwenden bis auf eine AUSNAHME für die Debugausgabe.

PCI-Debuggen

Beachten Sie Folgendes zum Debuggen von Peripheral Component Interconnect (PCI):
  • Ein getestetes Build-System oder ein getestetes Build PCI benötigt. SYS-Modul.
  • Unter Windows 2000 und Windows XP-basierten Systemen die entsprechende globale Variable durch den Debugger fest Beispiel (mit 0 x 3 wird die ausführlichste:
    ED PCI! PciDebug 0 x 3
    ModulnameDebug SymbolsBereich
    PCI.SYSPciDebug 0-3 

PCMCIA-Debuggen

Zum Debuggen von PCMCIA-Folgendes:
  • Ein getestetes Build-System oder ein getestetes Build PCMCIA-Modul benötigt.
  • Unter Windows 2000 und Windows XP-basierten Systemen die entsprechende globale Variable durch den Debugger fest Zum Beispiel
    ED PCMCIA! PcmciaDebugMask 0xFFFFFFFF
    Wobei:
    #define PCMCIA_DEBUG_ALL       0xFFFFFFFF#define PCMCIA_DEBUG_TUPLES    0x00000001
    #define PCMCIA_DEBUG_ENABLE 0x00000002
    #define PCMCIA_DEBUG_PARSE 0x00000004
    #define PCMCIA_DUMP_CONFIG 0x00000008
    #define PCMCIA_DEBUG_INFO 0x00000010
    #define PCMCIA_DEBUG_IOCTL 0x00000020
    #define PCMCIA_DEBUG_DPC 0x00000040
    #define PCMCIA_DEBUG_ISR 0x00000080
    #define PCMCIA_DEBUG_CANCEL 0x00000100
    #define PCMCIA_DUMP_SOCKET 0x00000200
    #define PCMCIA_READ_TUPLE 0x00000400
    #define PCMCIA_SEARCH_PCI 0x00000800
    #define PCMCIA_DEBUG_FAIL 0x00008000
    #define PCMCIA_PCCARD_READY 0x00010000
    #define PCMCIA_DEBUG_DETECT 0x00020000
    #define PCMCIA_COUNTERS 0x00040000
    #define PCMCIA_DEBUG_OVERRIDES 0x00080000
    #define PCMCIA_DEBUG_IRQMASK 0x00100000

    ModulnameDebug SymbolsBereich
    PCMCIA.SYSPcmciaDebugMask 0–FFFFFFFF 

NDIS Debuggen

Beachten Sie Folgendes zu Network Driver Interface Specification (NDIS) Debuggen:
  • NDIS Debuggen erfordert ein getestetes Build NDIS.

Storage-Treiber Debuggen

Beachten Sie Folgendes zum Speicher Treiber Debuggen:
  • Es erfordert ein getestetes Build oder Builds Speichermodule überprüft. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

    296225 wie Aktivieren der SCSIPORT-Debugprotokollierung

Drucker Treiber Debuggen

Beachten Sie folgende Informationen über Drucker Treiber Debuggen.

Benutzermodus

  • Erfordert ein getestetes Build bzw. Testbuilds Drucker Treiber (Unidrv oder Pscript).
  • Schließen Sie entweder drucken oder Spooler-Prozess (spoolsv.exe), je nachdem, ob die Benutzeroberfläche (UI) Benutzermodul oder Rendering-Modul Debuggen.
  • Verwenden Sie zum Debuggen Unidrv folgende Einstellung:
    ED Unidrv! GiDebugLevel 1

Kernel-Modus

  • Führen Sie Gflags -Befehl aus, und aktivieren Sie dann das folgende Flag spoolsv.exe:
    • Windows 2000: "Ort Heapreservierung am Ende der Seiten"
    • Windows XP: "Enable Seitenheap"
  • Starten Sie den Spooler (net Stop-Start Spooler).
  • Führen Sie verifier.exe auf Win32K.sys Druckertreiber zu debuggen.

Audiotreiber Debuggen

Beachten Sie Folgendes zum Debuggen Audiotreiber:
  • Es erfordert ein getestetes Build oder Builds audio Module aktiviert.
  • Unter Windows 2000 und Windows XP-basierten Systemen die entsprechende globale Variable durch den Debugger fest Beispiel:
    ED USBAUDIO! USBAudioDebugLevel 3
    ModulnameDebug SymbolsBereich
    USBAUDIO.SYSUSBAudioDebugLevel0-3
    SYSAUDIO.SYSSYSAUDIOTraceLevel0-100

Debuggen von HID-Treiber

Beachten Sie Folgendes zum Debuggen von HID-Treiber:
  • Es erfordert ein getestetes Build oder Builds HID Module aktiviert.
  • Unter Windows 2000 und Windows XP-basierten Systemen die entsprechende globale Variable durch den Debugger fest Beispiel:
    ED HIDCLASS! Dbgverbose 1
    ModulnameDebug SymbolsBereich
    HIDUSB.SYSHIDUSB_DebugLevel0-1
    HIDCLASS.SYSdbgverbose0-1

Serieller Treiber Debuggen

Beachten Sie Folgendes zum seriellen Treiber Debuggen:
  • Es erfordert ein getestetes Build oder Builds serielle Module aktiviert.
  • Serial.sys (in Windows 2000 und Windows XP-basierte Systeme):
    • Legen Sie den DebugLevel Wert in der Registrierung wie folgt:
      HKLM\System\CurrentControlSet\Services\Serial “DebugLevel”= REG_DWORD:0xFFFFFFFF
      Oder durch den Debugger wie folgt:
      ED serielle! SerialDebugLevel (0 x 00000000 – 0xFFFFFFFF)
    • Werte werden in das folgende Verzeichnis definiert:
      %DDKROOT%\src\kernel\serial\serial.h
  • Serenum.sys (in Windows 2000 und Windows XP-basierte Systeme):
    • Legen Sie den DebugLevel Wert in der Registrierung wie folgt:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serenum “DebugLevel”= REG_DWORD:1FF
    • Werte werden in das folgende Verzeichnis definiert:
      %DDKROOT%\src\kernel\serenum\serenum.h

Modem Treiber Debuggen

Um vollständige Unimodem ausführliche Debuggen unter Windows 2000 und Windows XP-basierten Systemen zu aktivieren, müssen Sie ein getestetes Build, und führen Sie dann Folgendes:
  1. Alles außer Mdminst.dll und Unimdm.tsp fügen Sie die folgenden Registrierungsschlüssel:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Unimodem "DebugFlags"=dword:0000003f
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon "SFCDisable"=dword:00000001
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Modem "DebugFlags"=dword:0000003f
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Modemcsa "DebugFlags"=dword:0000003f
  2. Kopieren Sie für Mdminst.dll Unimdm.ini in
    %windir%. Folgendes ist ein Beispiel für eine Unimdm.ini-Datei:
    [ModemUI]; DumpFlags:
    ; 00000001 DCB
    ; 00000002 MODEMSETTINGS
    ; 00000004 DEVCAPS
    DumpFlags=0x0000000f

    ; TraceFlags:
    ; 00000001 Warnings
    ; 00000002 Errors
    ; 00000004 General
    ; 00000008 Function trace
    TraceFlags=0x0000000f

    ; BreakFlags:
    ; 00000001 Break on validate
    ; 00000040 Break on process attach
    ; 00000100 Break on API enter
    BreakFlags=0x00000000

    ;; --------------------------------------------------------------------

    [Modem]
    ; DumpFlags:
    DumpFlags=0x0000000f

    ; TraceFlags:
    ; 00000001 Warnings
    ; 00000002 Errors
    ; 00000004 General
    ; 00000008 Function trace
    ; 00010000 Detection queries
    ; 00020000 Class installer trace
    TraceFlags=0x0003000f

    ; BreakFlags:
    ; 00000001 Break on validate
    ; 00000040 Break on process attach
    ; 00000100 Break on API enter
    BreakFlags=0x00000000

    ;; --------------------------------------------------------------------

    [SerialUI]
    ; DumpFlags:
    ; 00000001 DCB
    DumpFlags=0x00000000

    ; TraceFlags:
    ; 00000001 Warnings
    ; 00000002 Errors
    ; 00000004 General
    ; 00000008 Function trace
    TraceFlags=0x00000000

    ; BreakFlags:
    ; 00000001 Break on validate
    ; 00000040 Break on process attach
    ; 00000100 Break on API enter
    BreakFlags=0x00000000

    ;; --------------------------------------------------------------------

    [Unimdm]
    ; DumpFlags:
    DumpFlags=0x0000000f

    ; TraceFlags:
    ; 00000001 Warnings
    ; 00000002 Errors
    ; 00000004 General
    ; 00000008 Function trace
    ; 00010000 dwDeviceID related
    ; 00020000 hdLine related
    ; 00040000 hdCall related
    ; 00080000 pLineDev related
    ; 00100000 pModemInfo related
    TraceFlags=0x001f000f

    ; BreakFlags:
    ; 00000001 Break on validate
    ; 00000040 Break on process attach
    ; 00000080 Break on process detach
    ; 00000100 Break on API enter
    BreakFlags=0x00000000

  3. Unimdm.tsp Debuggen, fügen Sie den folgenden Registrierungsschlüssel:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\device instance\Logging

Debuggen auf Geräten installation

Um eine ausführliche Verfolgung von Kernel und Usermode Plug & Play-Manager in Windows XP und neueren Versionen zu erhalten, müssen Sie ein getestetes Build zu erhalten, und führen Sie folgenden Code:
ed NT!Kd_NTOSPNP_Mask 0xFFFFFFFF ed NT!Kd_PNPMGR_Mask 0xFFFFFFFF 
Unter Windows 2000 können Sie globale Variablen PnpEnumDebugLevel auf 1 oder 2 in der Kernel-Debugger wie folgt festlegen:
ed nt!PnpEnumDebugLevel 2 

Hinweise

Einige Treiber und Subsysteme auf Windows XP-basierten Systemen verwenden die neuen DbgPrintEx -Funktion:
ULONG DbgPrintEx(IN ULONG ComponentID,                 IN ULONG Level, IN PCHAR Format, . . . .
[arguments]);

Microsoft hat rund 95 unterschiedlichen IDs (Suchen DPFLTR_TYPE in der Datei Ntddk.h) definiert. Für jede Komponente Filter-ID wird eine Maske globale Variable beispielsweise
NT! Kd_IHVVIDEO_Mask, NT! Kd_IHVAUDIO_Mask
Sie können den Wert der Maske durch die Registrierung wie folgt festlegen:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Druckfilter

"IHV_AUDIO" REG_DWORD:0xFFFFFFFF = oder mit einem Debugger
ED NT! Kd_IHVAUDIO_Mask 0xffffffff
Debugausgabe wird basierend auf der globalen Maske (Kd_Win2000_Mask) und Komponente auf Maske gefiltert. Windbg Hilfedatei dokumentiert, wie die Maske und auf Werte Filtern der Ausgabe verwendet werden.

Zum Aktivieren der Debug-Verfolgung der Komponenten-ID aus der Datei Ntddk.h oder vom Debugger suchen Sie mit den folgenden Code:
x NT!Kd_*_Mask
Legen Sie den Wert auf das Maximum für die ausführliche Ausgabe (0xffffffff). Diese neue Funktion derzeit nicht nur wenige Klassen Treiber (im Abschnitt "Weitere Informationen" dieses Artikels beschrieben) verwenden.
Eigenschaften

Artikelnummer: 314743 – Letzte Überarbeitung: 10.01.2017 – Revision: 1

Feedback