如何啟用各種驅動程式和子系統中的詳細資訊的偵錯追蹤

文章翻譯 文章翻譯
文章編號: 314743 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

當您進行偵錯裝置驅動程式很重要您會收到詳細的偵錯追蹤從驅動程式和相關的子系統。

大部分的 Microsoft 所提供的驅動程式及子系統會使用全域變數和一組預先定義的值來控制偵錯追蹤資訊傳送到偵錯工具的詳細等級。

本文討論下列主題:
  • 如何啟用,並藉由使用核心偵錯工具和登錄值控制偵錯追蹤層級。
  • 為特定類別的驅動程式,您可以使用相對應的偵錯工具擴充功能來啟用及控制偵錯追蹤。
  • 差異啟用偵錯 Windows 2000 與 Windows XP 中的追蹤。

其他相關資訊

重要這份文件包含執行.chk 檔案進行開發和測試用途的相關資訊。Microsoft 產品支援部 (PSS) 不支援有安裝,除非您已安裝.chk 檔案來隔離問題告知由 PSS.chk 檔案的生產系統。安裝在生產系統上的.chk 檔案之前,請確定備份系統,並請確定您瞭解如何在發生問題時還原被取代的檔案。

如需有關.chk 檔案的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
103659安裝程式停止回應時檢查硬體 ; 如何使用 Ntdetect.com
320040如何使用 Ntdetect.chk 來識別 Windows 2000 中的硬體問題
如需有關如何備份及還原系統資訊,檢視 [Windows 2000 [說明及支援]。如需有關 NTbackups 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
240363如何使用 [備份] 程式來備份及還原系統狀態,在 Windows 2000 中
您也可以連絡您的備份產品提供者,如需有關如何使用他們的產品資訊。

附註下列的偵錯資訊有可能隨時變更,並適合僅供驅動程式偵錯之用。也請注意,偵錯資訊可能不是開發人員以外的任何人特別有用。

視訊的迷你連接埠偵錯

請注意下列有關視訊的迷你連接埠偵錯:
  • 它需要檢查的版本視訊連接埠和迷你連接埠驅動程式。
  • 它並不會使用偵錯工具擴充。
  • 它會藉由設定全域變數 (或變數) 啟用偵錯追蹤。
  • 在 Windows 2000 中的變數名稱是不同的 Windows XP 中。
  • 在 Windows 2000 中,您可以啟用偵錯可追蹤透過登錄或偵錯工具,如下所示:
    • 在登錄中,如下所示設定 VideoDebugLevel (0-3) 的值:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName\DeviceN VideoDebugLevel:REG_DWORD: 2
    • 或透過偵錯工具如下所示:
      ed videoprt! VideoDebugLevel 2
  • 視訊連接埠上新 DbgPrintEx 運作 (請參閱 「 注意 」 一節,這份文件的) 的 Windows XP 電腦使用。

    下列變數定義的視訊驅動程式:
    Kd_IHVVIDEO_Mask
    Kd_VIDEO_Mask
    Kd_VIDEOPRT_Mask
    若要設定一個遮罩,請執行下列動作:
    • 加入登錄中您想要的遮罩。例如:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session?Manager\Debug?Print?Filter “IHVVIDEO”=DWORD: 0xffffffff
    • 或在偵錯工具如下所示:
      ed Kd_IHVVIDEO_Mask 0xffffffff

1394 偵錯功能

請注意下列有關 1394年偵錯:
  • 它需要檢查的建置系統,或檢查組建 1394年模組。
  • 在 Windows 2000 和 Windows XP 架構的系統設定對應的全域變數,透過偵錯工具。例如:
    ed ohci1394! ohcidebuglevel 6
    摺疊此表格展開此表格
    ??模組名稱????偵錯符號??範圍
    OHCI1394.SYSohcidebuglevel1-6
    SBP2PORT.SYSsbp2debuglevel1-4
    1394bus.sysbusdebuglevel1-5
    如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    259855如何啟用 IEEE 1394 驅動程式中的偵錯列印

USB 偵錯

請注意下列有關通用序列匯流排 (USB) 偵錯:
  • 它需要已核取的建置系統,或檢查建置 USB 模組。
  • 在 Windows 2000 系統上,您需要設定對應的全域變數,透過偵錯工具。例如:
    ed USBD! USBD_Debug_Trace_Level 2
    摺疊此表格展開此表格
    ??模組名稱????偵錯符號??範圍
    UHCD.SYSUHCD_Debug_Trace_Level0-2
    OPENHCI.SYSOHCI_Debug_Trace_Level0-2
    USBHUB.SYSUSBH_Debug_Trace_Level0-3
    USBD.SYSUSBD_Debug_Trace_Level0-3
  • Windows XP 的系統上使用下列參數。
    摺疊此表格展開此表格
    ??模組名稱????偵錯符號??範圍
    USBPORT.SYSUSBPORT_Debug_Trace_Level0-4
    USBCCGP.SYSDbgVerbose0 或 1
    USBHUB.SYSUSBH_Debug_Trace_Level0-3
    USBD.SYSUSBD_Debug_Trace_Level0-3
    USBPORT.SYSUSBPORT_CatcTrapEnable0-1
  • 所有 USB 迷你連接埠驅動程式會將 USBPORT 都用於偵錯輸出。

PCI 偵錯

請注意下列有關周邊元件連接 (PCI) 偵錯:
  • 它需要檢查的版本系統或檢查的版本 PCI.SYS 模組。
  • 在 Windows 2000 和 Windows XP 架構的系統設定對應的全域變數,透過偵錯工具。例如 (0x3 正在最詳細的資訊有:
    ed PCI! PciDebug 0x3
    摺疊此表格展開此表格
    ??模組名稱????偵錯符號??範圍
    PCI.SYS?PciDebug??0-3?

PCMCIA 偵錯

請注意下列有關 PCMCIA 偵錯:
  • 它需要檢查的版本系統或檢查的版本 pcmcia 模組。
  • 在 Windows 2000 和 Windows XP 架構的系統設定對應的全域變數,透過偵錯工具。例如
    ed PCMCIA! PcmciaDebugMask 0xFFFFFFFF
    where:
    #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
    					
    摺疊此表格展開此表格
    ??模組名稱????偵錯符號??範圍
    PCMCIA.SYS?PcmciaDebugMask??0–ffffffff?

NDIS 偵錯

請注意下列有關網路驅動程式介面規格 (NDIS) 偵錯:
  • NDIS 偵錯需要檢查的版本 NDIS。

儲存區驅動程式偵錯

請注意下列有關儲存區驅動程式偵錯:
  • 它需要檢查的建置系統,或檢查組建儲存模組。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    296225如何啟用 SCSIPORT 偵錯記錄

印表機驅動程式偵錯

請注意下列有關印表機驅動程式偵錯。

使用者模式

  • 需要檢查的版本系統或檢查的版本的印表機驅動程式元件 (unidrv 或 pscript)。
  • 附加到列印應用程式] 或 [多工緩衝處理程式程序 (spoolsv.exe) 取決於是否您正在偵錯使用者介面 (UI) 模組或轉譯模組。
  • 針對偵錯 Unidrv,使用下列設定:
    ed unidrv! giDebugLevel 1

核心模式

  • 執行 gflags] 命令,然後啟用 spoolsv.exe 上下列的旗標:
    • Windows 2000:"將放在堆積配置頁面結尾處"
    • Windows XP:"啟用分頁堆積 」
  • 重新啟動多工緩衝處理器 (net 停止/啟動多工,緩衝處理程式)。
  • 執行 verifier.exe Win32K.sys 偵錯您的印表機驅動程式上。

音訊驅動程式偵錯

請注意下列有關音訊驅動程式偵錯:
  • 它需要檢查的建置系統,或檢查組建音訊模組。
  • 在 Windows 2000 和 Windows XP 架構的系統設定對應的全域變數,透過偵錯工具。例如:
    ed USBAUDIO! USBAudioDebugLevel 3
    摺疊此表格展開此表格
    ???模組名稱???????偵錯符號??????範圍??
    USBAUDIO.SYSUSBAudioDebugLevel0-3
    SYSAUDIO.SYSSYSAUDIOTraceLevel0-100

HID 驅動程式偵錯

請注意下列有關 HID 驅動程式偵錯:
  • 它需要已核取的建置系統,或檢查組建 HID 模組。
  • 在 Windows 2000 和 Windows XP 架構的系統設定對應的全域變數,透過偵錯工具。例如:
    ed HIDCLASS! dbgverbose 1
    摺疊此表格展開此表格
    ???模組名稱???????偵錯符號??????範圍??
    HIDUSB.SYSHIDUSB_DebugLevel0-1
    HIDCLASS.SYSdbgverbose0-1

序列驅動程式偵錯

請注意下列有關序列驅動程式偵錯:
  • 它需要檢查的建置系統,或檢查組建序列模組。
  • (在 Windows 2000 和 Windows XP 架構的系統) Serial.sys:
    • 設定 DebugLevel 值在登錄中如下所示:
      HKLM\System\CurrentControlSet\Services\Serial 「 DebugLevel 」 = REG_DWORD:0xFFFFFFFF
      或設定透過偵錯工具,如下所示:
      ed 序列! SerialDebugLevel (0x00000000 – 0xFFFFFFFF)
    • 在下列目錄中定義遮罩值:
      %DDKROOT%\src\kernel\serial\serial.h
  • (在 Windows 2000 和 Windows XP 架構的系統) Serenum.sys:
    • 設定 DebugLevel 值在登錄中如下所示:
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serenum 「 DebugLevel 」 = REG_DWORD:1FF
    • 在下列目錄中定義遮罩值:
      %DDKROOT%\src\kernel\serenum\serenum.h

數據機驅動程式偵錯

若要以便完整 unimodem 詳細資訊在 Windows 2000 和 Windows XP 的系統上偵錯您需要有一個的檢查的版本然後執行下列:
  1. 針對以外的所有內容 Mdminst.dll 和 Unimdm.tsp,新增下列登錄機碼:
    • 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. Mdminst.dll,將複製到 %windir% 的 Unimdm.ini。 The following is an example of a Unimdm.ini file:
    [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,新增下列登錄機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\device instance\Logging

裝置安裝偵錯

若要從 Windows XP 或更新版本上的核心和 usermode PNP 管理員接收詳細的追蹤,您必須取得已檢查的組建,然後再執行下列程式碼:
ed NT!Kd_NTOSPNP_Mask 0xFFFFFFFF ed NT!Kd_PNPMGR_Mask 0xFFFFFFFF
在 Windows 2000 上您可以設定全域變數 PnpEnumDebugLevel12 核心偵錯工具中,如下所示:
ed nt!PnpEnumDebugLevel 2

備忘稿

某些驅動程式及在 Windows XP 的系統上的子系統使用新的 DbgPrintEx 函式:
ULONG DbgPrintEx(IN ULONG ComponentID,
                 IN ULONG Level, IN PCHAR Format, . . . .
                 [arguments]);
				
Microsoft 已經定義大約 95 不同元件 ID (DPFLTR_TYPE Ntddk.h 檔案中找到)。每個元件] 篩選器識別碼,是全域的遮罩變數例如
NT!Kd_IHVVIDEO_Mask NT! Kd_IHVAUDIO_Mask
您可以設定遮罩值透過該登錄,如下所示:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session?Manager\Debug?Print?Filter

「 IHV_AUDIO 」 = REG_DWORD:0xFFFFFFFF 或偵錯工具,例如
ed NT! Kd_IHVAUDIO_Mask 0xffffffff
偵錯輸出會篩選根據全域遮罩 (Kd_Win2000_Mask) 及元件層級遮罩。Windbg 說明檔的文件中篩選輸出使用遮罩] 和 [層級值的方式。

若要以便偵錯追蹤?尋找您元件的金鑰從 Ntddk.h 檔案或從偵錯工具使用下列程式碼:
x NT!Kd_*_Mask
				
次要,將值設定為 [詳細資訊輸出 (0xffffffff) 最大值。 目前,只有幾個類別的驅動程式 (在 < 其他相關資訊 > 所述 > 一節) 使用這個新的函式。

屬性

文章編號: 314743 - 上次校閱: 2007年10月1日 - 版次: 6.0
這篇文章中的資訊適用於:
  • Microsoft Windows XP Driver Development Kit
  • Microsoft Win32 Device Driver Kit for Windows 2000
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows XP Professional
關鍵字:?
kbmt kbbug kbdebug kbdisplay kbfile kbhowto kbinfo kbinput kbkmode kbndis kbplugplay kbserial kbusb kbwdm KB314743 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:314743
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com