現在オフラインです。再接続するためにインターネットの接続を待っています

さまざまなドライバやサブシステムで詳細なデバッグ トレースを有効にする方法

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

この記事は、以前は次の ID で公開されていました: JP314743
概要
デバイス ドライバをデバッグする場合、ドライバとその関連サブシステムから詳細なデバッグ トレースを取得する必要があります。

マイクロソフトが提供する大部分のドライバとサブシステムでは、グローバル変数とあらかじめ定義された一連の変数を使用して、デバッガに送られるデバッグ トレース情報の詳細レベルを制御しています。

この資料では、次の項目について説明します。
  • カーネル デバッガとレジストリの値を使用して、デバッグ トレース レベルを有効にし、制御する方法
  • 特定の種類のドライバに対し、対応するデバッガ拡張機能を使用して、デバッグ トレースを有効にし、制御する方法
  • Windows 2000 と Windows XP でのデバッグ トレースを有効にする方法の違い
詳細
重要 : この資料には、開発およびテストを目的とした .chk ファイルの実行に関する情報が記載されています。Microsoft Product Support Services (PSS) は、問題を特定するために PSS の指示で .chk ファイルをインストールした場合を除き、.chk ファイルがインストールされている運用システムをサポートしません。運用システムに .chk ファイルをインストールする前に、必ずシステムをバックアップし、問題が発生した場合に、置き換えたファイルを復元する方法を確認してください。

.chk ファイルの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
103659 ハードウェアの検査中にセットアップが応答を停止する (Ntdetect.com の使用方法)
320040 Windows 2000 で Ntdetect.chk を使用してハードウェアの問題を特定する方法
システムのバックアップと復元の方法については、Windows 2000 ヘルプとサポートを参照してください。 Ntbackup の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
240363 システム状態のバックアップと復元の方法
また、バックアップ製品の使用方法に関する情報については、バックアップ製品の提供元に問い合わせてください。

: 次のデバッグ情報は、随時変更される場合があります。また、このデバッグ情報はドライバのデバッグのみを目的としており、ドライバの開発者以外には不要である可能性があります。

ビデオ ミニポートのデバッグ

ビデオ ミニポートのデバッグを行う際は、次のことに注意してください。
  • チェック ビルド ビデオ ポートとミニポート ドライバが必要です。
  • デバッガ拡張機能は使用されません。
  • デバッグ トレースを有効にするために、グローバル変数が設定されます。
  • 変数名は、Windows 2000 と Windows XP では異なります。
  • Windows 2000 では、次の手順を実行して、レジストリまたはデバッガからデバッグ トレースを有効にできます。
    • レジストリの VideoDebugLevel の値 (0 ~ 3) を次のように設定します。

      HKEY_LOCAL_MACHINE\SYSTEM\CCS\Services\DriverName\DeviceN VideoDebugLevel:REG_DWORD: 2
    • または、デバッガから次のように設定します。
      ed videoprt!VideoDebugLevel 2
  • Windows XP ベースのコンピュータのビデオ ポートでは、新しい DbgPrintEx 関数を使用します (詳細については、この資料の「注意事項」を参照してください)。

    ビデオ ドライバ用に定義されている変数は、次のとおりです。
    Kd_IHVVIDEO_Mask
    Kd_VIDEO_Mask
    Kd_VIDEOPRT_Mask
    マスクを設定するには、次の手順を実行します。
    • レジストリに必要なマスクを追加します。

      例 :
      HKEY_LOCAL_MACHINE\SYSTEM\CCS\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 Knowledge Base) をクリックしてください。
    259855 [HOWTO] IEEE 1394 ドライバのデバッグの出力を有効にする方法

USB のデバッグ

USB (Universal Serial Bus) のデバッグを行う際は、次のことに注意してください。
  • チェック ビルド システムまたはチェック ビルド 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 (Peripheral Component Interconnect) のデバッグを行う際は、次のことに注意してください。
  • チェック ビルド システムまたはチェック ビルド 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
    値の定義は以下のとおりです。
    #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 (Network Driver Interface Specification) のデバッグを行う際は、次のことに注意してください。

ストレージ ドライバのデバッグ

ストレージ ドライバのデバッグを行う際は、次のことに注意してください。
  • チェック ビルド システムまたはチェック ビルド ストレージ モジュールが必要です。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    296225 SCSIPORT のデバッグ ログを有効にする方法

プリンタ ドライバのデバッグ

プリンタ ドライバのデバッグを行う際は、次のことに注意してください。

ユーザー モード

  • チェック ビルド システムまたはチェック ビルド プリンタ ドライバ コンポーネント (unidrv または pscript) が必要です。
  • ユーザー インターフェイス (UI) モジュールをデバッグするか、レンダリング モジュールをデバッグするかに応じて、印刷アプリケーションまたはスプーラ プロセス (spoolsv.exe) にアタッチします。
  • Unidrv をデバッグする場合は、次の設定を使用します。
    ed unidrv!giDebugLevel 1

カーネル モード

  • gflags コマンドを実行して、spoolsv.exe の次のフラグを有効にします。
    • Windows 2000 の場合 : "Place Heap Allocation at end of pages"
    • Windows XP の場合 : "enable page heap"
  • スプーラを再起動します (net stop/start spooler)。
  • Win32K.sys に対して verifier.exe を実行して、プリンタ ドライバをデバッグします。

オーディオ ドライバのデバッグ

オーディオ ドライバのデバッグを行う際は、次のことに注意してください。
  • チェック ビルド システムまたはチェック ビルド オーディオ モジュールが必要です。
  • 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

シリアル ドライバのデバッグ

シリアル ドライバのデバッグを行う際は、次のことに注意してください。
  • チェック ビルド システムまたはチェック ビルド シリアル モジュールが必要です。
  • Serial.sys (Windows 2000 および Windows XP ベースのシステムの両方)
    • レジストリの DebugLevel の値を次のように設定します。
      HKLM\System\CCS\Services\Serial “DebugLevel”= REG_DWORD:0xFFFFFFFF
      または、デバッガから次のように設定します。
      ed Serial!SerialDebugLevel (0x00000000 - 0xFFFFFFFF)
    • マスク値は次のディレクトリで定義されています。
      %DDKROOT%\src\kernel\serial\serial.h
  • Serenum.sys (Windows 2000 および Windows XP ベースのシステムの両方)
    • レジストリの DebugLevel の値を次のように設定します。
      HKEY_LOCAL_MACHINE\System\CCS\Services\Serenum "DebugLevel"= REG_DWORD:1FF
    • マスク値は次のディレクトリで定義されています。
      %DDKROOT%\src\kernel\serenum\serenum.h

モデム ドライバのデバッグ

Windows 2000 および Windows XP ベースのシステムで unimodem の完全な詳細デバッグを有効にするには、チェック ビルドを用意し、次の手順を実行する必要があります。
  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 については、Unimdm.ini を %windir% にコピーします。Unimdm.ini ファイルの例を次に示します。
    [ModemUI]; DumpFlags:;    00000001   DCB;    00000002   MODEMSETTINGS;    00000004   DEVCAPSDumpFlags=0x0000000f; TraceFlags:;    00000001   Warnings;    00000002   Errors;    00000004   General ;    00000008   Function traceTraceFlags=0x0000000f; BreakFlags:;    00000001   Break on validate;    00000040   Break on process attach;    00000100   Break on API enterBreakFlags=0x00000000;; --------------------------------------------------------------------[Modem]; DumpFlags:DumpFlags=0x0000000f; TraceFlags:;    00000001   Warnings;    00000002   Errors;    00000004   General ;    00000008   Function trace;    00010000   Detection queries;    00020000   Class installer traceTraceFlags=0x0003000f; BreakFlags:;    00000001   Break on validate;    00000040   Break on process attach;    00000100   Break on API enterBreakFlags=0x00000000;; --------------------------------------------------------------------[SerialUI]; DumpFlags:;    00000001   DCBDumpFlags=0x00000000; TraceFlags:;    00000001   Warnings;    00000002   Errors;    00000004   General ;    00000008   Function traceTraceFlags=0x00000000; BreakFlags:;    00000001   Break on validate;    00000040   Break on process attach;    00000100   Break on API enterBreakFlags=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 relatedTraceFlags=0x001f000f; BreakFlags:;    00000001   Break on validate;    00000040   Break on process attach;    00000080   Break on process detach;    00000100   Break on API enterBreakFlags=0x00000000					
  3. Unimdm.tsp のデバッグを行うために、次のレジストリ キーを追加します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\device instance\Logging

デバイス インストールのデバッグ

Windows XP 以降のバージョンで、カーネル モードとユーザー モードの PNP マネージャから詳細なトレースを取得するには、チェック ビルドを用意し、次のコードを実行します。
ed NT!Kd_NTOSPNP_Mask 0xFFFFFFFF ed NT!Kd_PNPMGR_Mask 0xFFFFFFFF
Windows 2000 では、カーネル デバッガで、次のようにグローバル変数 PnpEnumDebugLevel を 1 または 2 に設定できます。
ed nt!PnpEnumDebugLevel 2

注意事項

Windows XP ベースのシステムのドライバとサブシステムの中には、次の新しい DbgPrintEx 関数を使用しているものがあります。
ULONG DbgPrintEx(IN ULONG ComponentID,                 IN ULONG Level, IN PCHAR Format, . . . .                 [arguments]);				
マイクロソフトでは、約 95 個の異なるコンポーネント ID を定義しています (詳細については、Ntddk.h ファイルの DPFLTR_TYPE を参照してください)。コンポーネント フィルタ ID ごとに、次のようなグローバル マスク変数があります。
NT! Kd_IHVVIDEO_Mask、NT!Kd_IHVAUDIO_Mask
マスクの値は、レジストリから次のように設定できます。
HKEY_LOCAL_MACHINE\SYSTEM\CCS\Control\Session Manager\Debug Print Filter

"IHV_AUDIO"=REG_DWORD:0xFFFFFFFF

または、デバッガから次のように設定できます。
ed NT!Kd_IHVAUDIO_Mask 0xffffffff
デバッグ出力は、グローバル マスク (Kd_Win2000_Mask) とコンポーネント レベルのマスクに基づいてフィルタ処理されます。出力のフィルタ処理でマスクおよびレベル値がどのように使用されるかについては、Windbg のヘルプ ファイルに記載されています。

デバッグ トレースを有効にするには、次のコードを使用して、Ntddk.h ファイルまたはデバッガからコンポーネント ID を調べます。
x NT!Kd_*_Mask				
次に、そのコンポーネント ID について、値を詳細出力の最大値 (0xffffffff) に設定します。現在、この新しい関数を使用できるドライバ (この資料の「詳細」に記載されているドライバ) はごくわずかです。
関連情報
なお、この資料は英語版の翻訳であり、日本語環境での確認は行っておりません。
プロパティ

文書番号:314743 - 最終更新日: 11/21/2005 08:12:00 - リビジョン: 5.1

  • Microsoft Windows XP Driver Development Kit (DDK)
  • Microsoft Win32 Device Driver Kit for Windows 2000
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • kbhowto kbinfo kbbug kbkmode kbwdm kbplugplay kbinput kbndis kbfile kbdebug kbserial kbusb kbdisplay KB314743
フィードバック