デバイス コンソール (DevCon.exe) の例

重要

PnPUtil には Windows のすべてのリリースが付属しており、最も信頼性が高くセキュリティで保護された API を使用しており、その使用をお勧めします。 devcon の代わりに PnPutil を使用する方法の詳細については、「 DevCon の置き換え」を参照してください。

分類の例

このセクションでは、次の Device Console (DevCon.exe) コマンドの例を示します。

DevCon HwIDs

DevCon Classes

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon Resources

DevCon Stack

DevCon Status

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon Enable

DevCon Disable

DevCon Update と UpdateNI

DevCon Install

DevCon Remove

DevCon Rescan

DevCon Restart

DevCon Reboot

DevCon SetHwID

DevCon dp_add、dp_deleted、dp_enum

例の詳細

例 1: すべてのハードウェア ID を検索する

DevCon 操作では ID と ID パターンを使用してデバイスを識別するため、DevCon を使用する一般的な最初の手順は、コンピューター上のデバイスのハードウェア ID 参照ファイルを作成することです。

次のコマンドでは 、DevCon HwIDs 操作を使用します。これにより、ID とデバイスの説明が返されます。 ワイルドカード文字 (*) を使用して、ローカル コンピューター上のすべてのデバイスを表します。

devcon hwids *

出力は長く、繰り返し使用されるため、参照用にテキスト ファイルに出力を保存します。

次のコマンドでは、ワイルドカード文字 (*) を使用して、コンピューター上のすべてのデバイスを表します。 リダイレクト文字 (>) を使用して、コマンド出力を hwids.txt ファイルに保存します。

devcon hwids * > hwids.txt

例 2: パターンを使用してハードウェア ID を検索する

特定のデバイスのハードウェア ID を検索するには、ハードウェア ID またはパターン、互換性のある ID またはパターン、デバイス インスタンス ID またはパターン、またはデバイス セットアップ クラスの名前を入力します。

次のコマンドでは、 DevCon HwIDs 操作とパターンを使用して、コンピューター上のフロッピー ディスク ドライブのハードウェア ID を検索します。 (ユーザーは、いずれかのデバイス識別子にパターンが表示されることを前提としています)。コマンドでは、ワイルドカード文字 (*) を使用して、いずれかの ID で "フロッピー" という単語の前または後に続く可能性のあるすべての文字を表します。

devcon hwids *floppy*

これに対して DevCon は、コンピューター上のフロッピー ディスク ドライブのデバイス インスタンス ID、ハードウェア ID、および互換性のある ID を表示します。 これらの ID は、後続の DevCon コマンドで使用できます。

FDC\GENERIC_FLOPPY_DRIVE\5&39194F6D&0&0
    Name: Floppy disk drive
    Hardware ID's:
        FDC\GENERIC_FLOPPY_DRIVE
    Compatible ID's:
        GenFloppyDisk
1 matching device(s) found.

この場合、"フロッピー" という語句は、コンピューター上の 1 つのデバイスのみのハードウェア ID または互換性のある ID で発生します。 複数のデバイスの ID で発生した場合、ID に "フロッピー" を持つすべてのデバイスが出力に表示されます。

例 3: クラスを使用してハードウェア ID を検索する

次のコマンドでは、 DevCon HwIDs 操作とデバイス セットアップ クラスを使用して、ポート デバイス セットアップ クラス内のすべてのデバイスのハードウェア ID を検索します。 クラス名の前の等号 (=) は、ID ではなくクラスであることを示します。

devcon hwids =ports

これに対して、DevCon はポート セットアップ クラスの 3 つのデバイスのハードウェア ID と互換性のある ID を表示します。

ACPI\PNP0401\4&B4063F4&0
    Name: ECP Printer Port (LPT1)
    Hardware ID's:
        ACPI\PNP0401
        *PNP0401
ACPI\PNP0501\1
    Name: Communications Port (COM1)
    Hardware ID's:
        ACPI\PNP0501
        *PNP0501
ACPI\PNP0501\2
    Name: Communications Port (COM2)
    Hardware ID's:
        ACPI\PNP0501
        *PNP0501
3 matching device(s) found.

例 4: ローカル コンピューター上のクラスを一覧表示する

DevCon 操作ではデバイス セットアップ クラスを使用してデバイスを識別できるため、コンピューター上のデバイス セットアップ クラスの参照ファイルを作成すると便利です。

次のコマンドでは、 DevCon Classes 操作を使用します。これにより、コンピューター上のすべてのクラスの一覧と説明が返されます。

devcon classes

出力は長く、繰り返し使用されるため、参照用にテキスト ファイルに出力を保存します。

次のコマンドは、コンピューター上のすべてのデバイス クラスを表示します。 リダイレクト文字 (>) を使用して、コマンド出力を classes.txt ファイルに保存します。

devcon classes > classes.txt

例 6: デバイス セットアップ クラスのデバイスを一覧表示する

次のコマンドでは 、DevCon ListClass 操作を使用して、ネットワーク アダプターのデバイス セットアップ クラスである Net 内のデバイスを一覧表示します。

devcon listclass net

応答として、DevCon は Net セットアップ クラスの各デバイスのデバイス インスタンス ID と説明を表示します。

Listing 6 device(s) for setup class "Net" (Network adapters).
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000                                   : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000                                      : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000                                  : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000                                   : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000                                    : Direct Parallel

この表示は興味深いものの、Net セットアップ クラスのデバイスのハードウェア ID を提供しません。 次のコマンドでは、 DevCon HwIDs 操作を使用して、Net セットアップ クラスのデバイスを一覧表示します。 DevCon HwIDs コマンドでは、クラス名の前に等号 (=) が付き、ID ではなくクラスであることを示します。

devcon hwids =net

結果の表示には、Net クラスのデバイスが一覧表示され、クラス内のデバイスのデバイス インスタンス ID、ハードウェア ID、および互換性のある ID が含まれます。

PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0
    Name: 3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)
    Hardware ID's:
        PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78
        PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028
        PCI\VEN_10B7&DEV_9200&CC_020000
        PCI\VEN_10B7&DEV_9200&CC_0200
    Compatible ID's:
        PCI\VEN_10B7&DEV_9200&REV_78
        PCI\VEN_10B7&DEV_9200
        PCI\VEN_10B7&CC_020000
        PCI\VEN_10B7&CC_0200
 PCI\VEN_10B7
        PCI\CC_020000
 PCI\CC_0200
ROOT\MS_L2TPMINIPORT\0000
    Name: WAN Miniport (L2TP)
    Hardware ID's:
        ms_l2tpminiport
ROOT\MS_NDISWANIP\0000
    Name: WAN Miniport (IP)
    Hardware ID's:
        ms_ndiswanip
ROOT\MS_PPPOEMINIPORT\0000
    Name: WAN Miniport (PPPOE)
    Hardware ID's:
        ms_pppoeminiport
ROOT\MS_PPTPMINIPORT\0000
    Name: WAN Miniport (PPTP)
    Hardware ID's:
        ms_pptpminiport
ROOT\MS_PTIMINIPORT\0000
    Name: Direct Parallel
    Hardware ID's:
        ms_ptiminiport
6 matching device(s) found.

例 7: 複数のクラスのデバイスを一覧表示する

次のコマンドは 、DevCon ListClass 操作を使用して、DiskDrive、CDROM、および TapeDrive クラスのデバイスを一覧表示します。

devcon listclass diskdrive cdrom tapedrive

応答として、DevCon はそれらのクラス内のデバイスを表示します。

Listing 1 device(s) for setup class "DiskDrive" (Disk drives).
IDE\DISKWDC_WD204BA_____________________________16.13M16\4457572D414D3730323136333938203120202020: WDC WD204BA
Listing 1 device(s) for setup class "CDROM" (DVD/CD-ROM drives).
IDE\CDROMSAMSUNG_DVD-ROM_SD-608__________________2.2_____\4&13B4AFD&0&0.0.0: SAMSUNG DVD-ROM SD-608
No devices for setup class "TapeDrive" (Tape drives).

例 8: すべてのドライバー ファイルを一覧表示する

次のコマンドでは、 DevCon DriverFiles 操作を使用して、システム上のデバイスで使用されるドライバーのファイル名を一覧表示します。 コマンドは、ワイルドカード文字 (*) を使用して、システム上のすべてのデバイスを示します。 出力は広範であるため、コマンドはリダイレクト文字 (>) を使用して、出力を参照ファイル (driverfiles.txt) にリダイレクトします。

devcon driverfiles * > driverfiles.txt

例 9: 特定のデバイスのドライバー ファイルを一覧表示する

次のコマンドは 、DevCon DriverFiles 操作を使用して、ローカル コンピューター上のマウス デバイスが使用するデバイス ドライバーを検索します。 ハードウェア ID の 1 つである HID\Vid_045e&Pid_0039&Rev_0121 によってデバイスが識別されます。 ハードウェア ID にはアンパサンド文字 (&) が含まれているため、引用符で囲まれています。

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

応答として、DevCon には、マウス デバイスをサポートする 2 つのデバイス ドライバーが表示されます。

HID\VID_045E&PID_0039\6&DC36FDE&0&0000
    Name: Microsoft USB IntelliMouse Optical
    Driver installed from c:\windows\inf\msmouse.inf [HID_Mouse_Inst]. 2 file(s)
 used by driver:
        C:\WINDOWS\System32\DRIVERS\mouhid.sys
        C:\WINDOWS\System32\DRIVERS\mouclass.sys
1 matching device(s) found.

例 10: ハードウェア ID パターン別にドライバー パッケージを一覧表示する

次のコマンドでは、 DevCon DriverNodes コマンドと ID パターンを使用して、ソフトウェア列挙デバイスのドライバー ノードを一覧表示します。 パターンは、同じセットアップ クラスにない可能性がある類似デバイスに関する情報を見つけるのに役立ちます。

次のコマンドでは、ID パターン sw\* を使用して、ハードウェア ID または互換性のある ID が "sw" で始まるデバイス (ソフトウェア列挙デバイス) を指定します。

devcon drivernodes sw*

応答として、DevCon は、システム上のソフトウェア列挙デバイスのドライバー ノードを表示します。

SW\{A7C7A5B0-5AF3-11D1-9CED-00A024BF0407}\{9B365890-165F-11D0-A195-0020AFD156E4}

 Name: Microsoft Kernel System Audio Device
DriverNode #0:
    Inf file is c:\windows\inf\wdmaudio.inf
    Inf section is WDM_SYSAUDIO
    Driver description is Microsoft Kernel System Audio Device
    Manufacturer name is Microsoft
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002244
        Inf is digitally signed
SW\{B7EAFDC0-A680-11D0-96D8-00AA0051E51D}\{9B365890-165F-11D0-A195-0020AFD156E4}

    Name: Microsoft Kernel Wave Audio Mixer
DriverNode #0:
    Inf file is c:\windows\inf\wdmaudio.inf
    Inf section is WDM_KMIXER
    Driver description is Microsoft Kernel Wave Audio Mixer
    Manufacturer name is Microsoft
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002244
        Inf is digitally signed
SW\{CD171DE3-69E5-11D2-B56D-0000F8754380}\{9B365890-165F-11D0-A195-0020AFD156E4}

    Name: Microsoft WINMM WDM Audio Compatibility Driver
DriverNode #0:
    Inf file is c:\windows\inf\wdmaudio.inf
    Inf section is WDM_WDMAUD
    Driver description is Microsoft WINMM WDM Audio Compatibility Driver
    Manufacturer name is Microsoft
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002244
        Inf is digitally signed
3 matching device(s) found.

例 11: デバイス インスタンス ID パターン別にドライバー パッケージを一覧表示する

次のコマンドでは 、DevCon DriverNodes 操作を使用して、デバイス インスタンス ID が ROOT\MEDIA で始まるすべてのデバイス 、つまり Enum\Root\Media レジストリ サブキー内のデバイスのドライバー パッケージを一覧表示します。 コマンドは、at 文字 (@) を使用して、フレーズがデバイス インスタンス ID にあることを示します。

devcon drivernodes @ROOT\MEDIA*

応答として、DevCon には、デバイス インスタンス ID が "ROOT\MEDIA" で始まるデバイスのドライバー ノードが表示されます。

ROOT\MEDIA\MS_MMACM
    Name: Audio Codecs
DriverNode #0:
    Inf file is c:\windows\inf\wave.inf
    Inf section is MS_MMACM
    Driver description is Audio Codecs
    Manufacturer name is (Standard system devices)
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002240
        Inf is digitally signed
ROOT\MEDIA\MS_MMDRV
    Name: Legacy Audio Drivers
DriverNode #0:
    Inf file is c:\windows\inf\wave.inf
    Inf section is MS_MMDRV
    Driver description is Legacy Audio Drivers
    Manufacturer name is (Standard system devices)
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002240
        Inf is digitally signed
ROOT\MEDIA\MS_MMMCI
    Name: Media Control Devices
DriverNode #0:
    Inf file is c:\windows\inf\wave.inf
    Inf section is MS_MMMCI
    Driver description is Media Control Devices
    Manufacturer name is (Standard system devices)
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002240
        Inf is digitally signed
ROOT\MEDIA\MS_MMVCD
    Name: Legacy Video Capture Devices
DriverNode #0:
    Inf file is c:\windows\inf\wave.inf
    Inf section is MS_MMVCD
    Driver description is Legacy Video Capture Devices
    Manufacturer name is (Standard system devices)
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002240
        Inf is digitally signed
ROOT\MEDIA\MS_MMVID
    Name: Video Codecs
DriverNode #0:
    Inf file is c:\windows\inf\wave.inf
    Inf section is MS_MMVID
    Driver description is Video Codecs
    Manufacturer name is (Standard system devices)
    Provider name is Microsoft
    Driver date is 7/1/2001
    Driver version is 5.1.2535.0
    Driver node rank is 0
    Driver node flags are 00002240
        Inf is digitally signed
5 matching device(s) found.

例 12: デバイスのクラスのリソースを一覧表示する

次のコマンドは 、DevCon Resources 操作を使用して、Hdc デバイス セットアップ クラスのデバイスに割り当てられたリソースを表示します。 このクラスには IDE コントローラーが含まれます。 等号 (=) は、ID ではなくクラスであることを示すために、"hdc" の前に付加されます。

devcon resources =hdc

これに対して、DevCon には、ローカル コンピューター上の IDE コントローラーに割り当てられているリソースが一覧表示されます。

PCI\VEN_8086&DEV_244B&SUBSYS_00000000&REV_02\3&29E81982&0&F9
    Name: Intel(r) 82801BA Bus Master IDE Controller
    Device is currently using the following resources:
        IO  : ffa0-ffaf
PCIIDE\IDECHANNEL\4&37E53584&0&0
    Name: Primary IDE Channel
    Device is currently using the following resources:
        IO  : 01f0-01f7
        IO  : 03f6-03f6
        IRQ : 14
PCIIDE\IDECHANNEL\4&37E53584&0&1
    Name: Secondary IDE Channel
    Device is currently using the following resources:
        IO  : 0170-0177
        IO  : 0376-0376
        IRQ : 15
3 matching device(s) found.

例 13: デバイスのリソースを ID で一覧表示する

次のコマンドは 、DevCon Resources 操作を使用して、システム タイマーに割り当てられたリソースを一覧表示します。 コマンドは、システム タイマー ACPI\PNP0100 のハードウェア ID を使用して、デバイスを指定します。

devcon resources *PNP0100

応答として、DevCon はシステム タイマーのリソースを表示します。

ROOT\*PNP0100\PNPBIOS_8
    Name: System timer
    Device has the following resources reserved:
        IO  : 0040-005f
        IRQ : 0
1 matching device(s) found.

次のコマンドでは、DevCon resources コマンドでシステム タイマーのデバイス インスタンス ID を使用します。 at 文字 (@) は、文字列がデバイス インスタンス ID であり、ハードウェア ID または互換性のある ID ではないことを示します。

devcon resources "@ACPI\PNP0100\4&b4063f4&0"

例 14: 記憶域デバイスのドライバー スタックを表示する

次のコマンドは 、DevCon Stack 操作を使用してボリューム セットアップ クラス内のデバイスを検索し、それらのデバイスに対して予期されるドライバー スタックを表示します。 等号 (=) は、文字列がクラス名であることを示します。

devcon stack =Volume

応答として、DevCon は Volume クラス内のデバイスに対して予期されるスタックを表示します。 返されるデータには、各デバイスのデバイス インスタンス ID と説明、デバイス セットアップ クラスの GUID と名前、上位と下位のフィルター ドライバーの名前、サービスの制御 (存在する場合) が含まれます。

STORAGE\VOLUME\1&30A96598&0&SIGNATURE32323533OFFSET271167600LENGTH6E00D0C00
    Name: Generic volume
    Setup Class: {71A27CDD-812A-11D0-BEC7-08002BE2092F} Volume
    Class upper filters:
        VolSnap
    Controlling service:
        (none)
STORAGE\VOLUME\1&30A96598&0&SIGNATURE32323533OFFSET7E00LENGTH27115F800
    Name: Generic volume
    Setup Class: {71A27CDD-812A-11D0-BEC7-08002BE2092F} Volume
    Class upper filters:
        VolSnap
    Controlling service:
        (none)
2 matching device(s) found.

例 15: デバイスのセットアップ クラスを検索する

DevCon Stack 操作は、上位および下位のフィルター ドライバーに加えて、デバイスのセットアップ クラスを返します。 次のコマンドは、プリンター ポート インターフェイスのセットアップ クラスを検索し、そのデバイス インスタンス ID を使用してセットアップ クラスを見つけます。

次のコマンドでは 、DevCon HwIDs 操作を使用して、プリンター ポートハードウェア ID の語句である "LPT" を使用して、プリンター ポート インターフェイスのデバイス インスタンス ID を検索します。

devcon hwids *lpt*

応答として、DevCon はデバイス インスタンス ID (太字で表示) とプリンター ポート インターフェイスのハードウェア ID を返します。

LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1
    Name: Printer Port Logical Interface
    Hardware ID's:
        LPTENUM\MicrosoftRawPort958A
        MicrosoftRawPort958A
1 matching device(s) found.

次のコマンドでは 、DevCon Stack 操作を使用して、デバイス インスタンス ID で表されるデバイスのデバイス セットアップ クラスを検索します。 at 文字 (@) は、ID をデバイス インスタンス ID として識別します。 ID にはアンパサンド文字が含まれているため、引用符で囲まれます。

devcon stack "@LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1"

応答として、DevCon は、 クラスを含むプリンター ポート インターフェイスのドライバー スタックを表示します。 プリンター ポートが System クラスにあることを示す画面が表示されます。

LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1
    Name: Printer Port Logical Interface
    Setup Class: {4D36E97D-E325-11CE-BFC1-08002BE10318} System
    Controlling service:
        (none)
1 matching device(s) found.

次のコマンドは、 DevCon Stack 操作を使用して、ミニポート ドライバー デバイスの予期されるスタックを表示します。 ハードウェア ID または互換性のある ID に "ミニポート" がある Net セットアップ クラス内のデバイスを検索します。

このコマンドは、最初に検索を Net セットアップ クラスに制限してから、"ミニポート" 文字列を見つけることに注意してください。 Net セットアップ クラス以外のデバイスは見つかりません。

devcon stack =net *miniport*

応答として、DevCon はミニポート ドライバーの予期されるスタックを表示します。

ROOT\MS_L2TPMINIPORT\0000
    Name: WAN Miniport (L2TP)
    Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
    Controlling service:
        Rasl2tp
ROOT\MS_PPPOEMINIPORT\0000
    Name: WAN Miniport (PPPOE)
    Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
    Controlling service:
        RasPppoe
    Lower filters:
        NdisTapi
ROOT\MS_PPTPMINIPORT\0000
    Name: WAN Miniport (PPTP)
    Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
    Controlling service:
        PptpMiniport
    Lower filters:
        NdisTapi
ROOT\MS_PTIMINIPORT\0000
    Name: Direct Parallel
    Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
    Controlling service:
        Raspti
    Lower filters:
        PtiLink
4 matching device(s) found.

例 17: すべてのデバイスの状態を表示する

次のコマンドは 、DevCon Status 操作を使用して、ローカル コンピューター上のすべてのデバイスの状態を検索します。 次に、ログ記録または後で確認するために、status.txt ファイルに状態を保存します。 コマンドでは、ワイルドカード文字 (*) を使用してすべてのデバイスを表し、リダイレクト文字 (>) を使用して出力を status.txt ファイルにリダイレクトします。

devcon status * > status.txt

例 18: デバイス インスタンス ID でデバイスの状態を表示する

特定のデバイスの状態を確認する最も信頼性の高い方法は、デバイスのデバイス インスタンス ID を使用することです。

次のコマンドでは、 DevCon Status コマンドでローカル コンピューター上の I/O コントローラーのデバイス インスタンス ID を使用します。 コマンドには、デバイスのデバイス インスタンス ID PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00 が含まれます。 ID にプレフィックスが付いた at 文字 (@) は、文字列をデバイス インスタンス ID として識別します。 ID にはアンパサンド文字が含まれているため、引用符で囲む必要があります。

devcon status "@PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00"

応答として、DevCon は I/O コントローラーの状態を表示します。

PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00
    Name: Intel(R) 82815 Processor to I/O Controller - 1130
    Driver is running.
1 matching device(s) found.

次のコマンドは 、DevCon Status 操作を使用して、特定のストレージ関連デバイスの状態を表示します。 次のデバイスが検索されます。

  • ディスク ドライブ、GenDisk

  • CD-ROM ドライブ、GenCdRom

  • フロッピー ディスク ドライブ、FDC\GENERIC_FLOPPY_DRIVE

  • ボリューム、STORAGE\Volume

  • 論理ディスク マネージャー、ROOT\DMIO

  • ボリューム マネージャー、ROOT\FTDISK

  • フロッピー ディスク コントローラー、ACPI\PNP0700

コマンドでは、各 ID はスペースによって他の ID から分離されます。 GenDisk と GenCdRom は互換性のある ID ですが、他の ID はハードウェア ID であることに注意してください。

devcon status GenDisk GenCdRom FDC\GENERIC_FLOPPY_DRIVE STORAGE\Volume ROOT\DMIO ROOT\FTDISK ACPI\PNP0700

応答として、DevCon には各デバイスの状態が表示されます。

FDC\GENERIC_FLOPPY_DRIVE\1&3A2146F1&0&0
    Name: Floppy disk drive
    Driver is running.
IDE\CDROMSAMSUNG_DVD-ROM_SD-608__________________2.2_____\4&13B4AFD&0&0.0.0
    Name: SAMSUNG DVD-ROM SD-608
    Driver is running.
IDE\DISKWDC_WD204BA_____________________________16.13M16\4457572D414D373032313633393820312
0202020
    Name: WDC WD204BA
    Driver is running.
ROOT\DMIO\0000
    Name: Logical Disk Manager
    Driver is running.
ROOT\FLOPPYDISK\0000
    Device has a problem: 28.
ROOT\FLOPPYDISK\0002
    Device has a problem: 01.
ROOT\FLOPPYDISK\0003
    Device has a problem: 01.
ROOT\FLOPPYDISK\0004
    Device is currently stopped.
ROOT\FTDISK\0000
    Name: Volume Manager
    Driver is running.
STORAGE\VOLUME\1&30A96598&0&SIGNATUREEA1AA9C7OFFSET1770DF800LENGTH3494AEA00
    Name: Generic volume
    Driver is running.
STORAGE\VOLUME\1&30A96598&0&SIGNATUREEA1AA9C7OFFSET7E00LENGTH1770CFC00
    Name: Generic volume
    Driver is running.
11 matching device(s) found.

例 20: ハードウェア ID パターンでデバイスを検索する

次のコマンドでは、 DevCon Find 操作を使用してマウス デバイスを検索します。 具体的には、ハードウェア ID または互換性のある ID に "mou." が含まれているデバイスをコンピューターで検索し、"moose" ドライバーが見つかりません。

devcon find *mou*

この場合、DevCon は両方のマウス デバイスを検出しました。

ROOT\*PNP0F03\1_0_21_0_31_0                                 : Microsoft PS/2 Mouse
ROOT\RDP_MOU\0000                                           : Terminal Server Mouse Driver

すべての DevCon 表示操作ではハードウェア ID も検索されるため、任意の表示操作を使用してハードウェア ID を検索できます。 出力に必要なコンテンツに基づいて操作を選択します。 たとえば、ローカル コンピューター上のマウス関連デバイスで使用されるデバイス ドライバーを見つけるには、次のコマンドを送信します。

devcon driverfiles *mou*

これに対して、DevCon はデバイスを検索し、ドライバーを一覧表示します。

HID\VID_045E&PID_0039\6&DC36FDE&0&0000
    Name: Microsoft USB IntelliMouse Optical
    Driver installed from c:\windows\inf\msmouse.inf [HID_Mouse_Inst]. 2 file(s) used by d
river:
        C:\WINDOWS\System32\DRIVERS\mouhid.sys
        C:\WINDOWS\System32\DRIVERS\mouclass.sys
ROOT\RDP_MOU\0000
    Name: Terminal Server Mouse Driver
    Driver installed from c:\windows\inf\machine.inf [RDP_MOU]. 2 file(s) used by driver:
        C:\WINDOWS\System32\DRIVERS\termdd.sys
        C:\WINDOWS\System32\DRIVERS\mouclass.sys
2 matching device(s) found.

例 21: デバイス インスタンス ID またはクラスでデバイスを検索する

次のコマンドでは、 DevCon Find 操作を使用して、ローカル コンピューター上のすべてのレガシ デバイスを表示します。 レガシ デバイスにはハードウェア ID がないため、デバイス インスタンス ID (レジストリ パス)、ROOT\LEGACY、またはセットアップ クラス LegacyDriver で検索する必要があります。

最初のコマンドは、デバイス インスタンス ID パターンによってレガシ ドライバーを検索します。 ID パターンの前には、デバイス インスタンス ID を示す at 文字 (@) と、ROOT\Legacy サブキー内のすべてのデバイスを検索するためのワイルドカード文字 (*) が付きます。

devcon find @root\legacy*

2 番目のコマンドでは、LegacyDriver クラス内のすべてのデバイスを検索して、レガシ デバイスを検索します。

devcon find =legacydriver

どちらのコマンドも同じ出力を生成します。この場合、同じ 27 個のレガシ デバイスを検索します。

ROOT\LEGACY_AFD\0000                                        : AFD Networking Support Environment
ROOT\LEGACY_BEEP\0000                                       : Beep
ROOT\LEGACY_DMBOOT\0000                                     : dmboot
ROOT\LEGACY_DMLOAD\0000                                     : dmload
ROOT\LEGACY_FIPS\0000                                       : Fips
ROOT\LEGACY_GPC\0000                                        : Generic Packet Classifier
ROOT\LEGACY_IPSEC\0000                                      : ipsec
ROOT\LEGACY_KSECDD\0000                                     : ksecdd
ROOT\LEGACY_MNMDD\0000                                      : mnmdd
ROOT\LEGACY_MOUNTMGR\0000                                   : mountmgr
ROOT\LEGACY_NDIS\0000                                       : ndis
ROOT\LEGACY_NDISTAPI\0000                                   : Remote Access NDIS TAPI Driver
ROOT\LEGACY_NDISUIO\0000                                    : NDIS Usermode I/O Protocol
ROOT\LEGACY_NDPROXY\0000                                    : NDProxy
ROOT\LEGACY_NETBT\0000                                      : netbt
ROOT\LEGACY_NULL\0000                                       : Null
ROOT\LEGACY_PARTMGR\0000                                    : PartMgr
ROOT\LEGACY_PARVDM\0000                                     : ParVdm
ROOT\LEGACY_RASACD\0000                                     : Remote Access Auto Connection Driver
ROOT\LEGACY_RDPCDD\0000                                     : RDPCDD
ROOT\LEGACY_RDPWD\0000                                      : RDPWD
ROOT\LEGACY_TCPIP\0000                                      : tcpip
ROOT\LEGACY_TDPIPE\0000                                     : TDPIPE
ROOT\LEGACY_TDTCP\0000                                      : TDTCP
ROOT\LEGACY_VGASAVE\0000                                    : VgaSave
ROOT\LEGACY_VOLSNAP\0000                                    : VolSnap
ROOT\LEGACY_WANARP\0000                                     : Remote Access IP ARP Driver
27 matching device(s) found.

例 22: セットアップ クラスでデバイスを検索 (およびすべて検索) する

次のコマンドでは 、DevCon FindAll 操作を使用して、コンピューター上のすべてのデバイスを Net セットアップ クラスで検索します。 等号 (=) は、Net が ID ではなくセットアップ クラスであることを示します。

devcon findall =net

これに対して、DevCon は Net セットアップ クラスに次の 7 つのデバイスを一覧表示します。 最初の 6 つのデバイスは、標準的なミニポート ドライバー デバイスです。 7 番目のデバイスである RAS 非同期アダプターは、ソフトウェア列挙デバイス (SW\*) であり、必要になるまでインストールされません。

PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000                                   : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000                                      : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000                                  : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000                                   : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000                                    : Direct Parallel
SW\{EEAB7790-C514-11D1-B42B-00805FC1270E}\ASYNCMAC          : RAS Async Adapter
7 matching device(s) found.

次のコマンドは、 DevCon Find コマンドと DevCon FindAll コマンドと同じパラメーターを使用して DevCon Find コマンドを実行することで 、DevCon Find 操作と DevCon FindAll 操作を比較します。

devcon find =net

これに対して、DevCon は Net セットアップ クラスに次の 6 つのデバイスを一覧表示します。

PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000                                   : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000                                      : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000                                  : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000                                   : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000                                    : Direct Parallel
6 matching device(s) found.

予想通り、 DevCon Find コマンドは、現在インストールされているデバイスのみを返しますが、デバイスがインストールされていないため、ソフトウェア列挙デバイスの一覧は表示されません。

例 23: セットアップ クラスのフィルター ドライバーを表示する

次のコマンドでは、 DevCon ClassFilter 操作を使用して、DiskDrive セットアップ クラスの上位フィルター ドライバーを表示します。 このコマンドには classfilter 演算子が含まれていないため、DevCon はクラスのフィルター ドライバーを表示しますが、変更は行いません。

devcon classfilter DiskDrive upper

これに対して、DevCon は DiskDrive クラスの上位フィルター ドライバーを表示し、変更しなかったことを確認します。 この場合、ディスプレイには、DiskDrive セットアップ クラスのデバイスで PartMgr.sys 上部フィルター ドライバーが使用されていることを示しています。

Class filters unchanged.
    PartMgr

例 24: セットアップ クラスにフィルター ドライバーを追加する

次のコマンドでは 、DevCon ClassFilter 操作を使用して、DiskDrive セットアップ クラスの上位フィルター ドライバーの一覧に架空のフィルター (Disklog.sys) を追加します。

このコマンドは、add-after (+) ClassFilter 演算子を使用して、PartMgr ドライバーの後に Disklog ドライバーを読み込み、PartMgr.sys が既に処理したデータを受け取るようにします。

コマンドが開始されると、仮想カーソルは最初のフィルター ドライバーの前に配置されます。 特定のドライバーに配置されていないため、DevCon はフィルター ドライバーの一覧の末尾に Disklog ドライバーを追加します。

また、コマンドでは /r パラメーターも使用されます。これにより、クラス フィルターの変更を有効にする必要がある場合にシステムが再起動されます。

devcon /r classfilter DiskDrive upper +Disklog

応答として、DevCon は DiskDrive クラスの現在の上位フィルター ドライバーを表示します。

Class filters changed. Class devices must be restarted for changes to take effect.
    PartMgr
    Disklog

ドライバー名のスペルを間違えた場合、またはシステムにインストールされていないドライバーを追加しようとすると、コマンドは失敗します。 DevCon は、ドライバーがサービスとして登録されていない限り、つまり、ドライバーがサービス レジストリ サブキー (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services) にサブキーを持っていない限り、ドライバーを追加しません。

次のコマンドは、このセーフガード機能をテストします。 DiskDrive クラスの上位フィルターの一覧に "Disklgg" ("Disklog" ではなく) を追加しようとします。 出力は、コマンドが失敗することを示しています。

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

例 25: クラス リストにフィルター ドライバーを挿入する

次のコマンドでは 、DevCon ClassFilter 操作を使用して、架空のフィルター ドライバー (MyFilter.sys) を DiskDrive セットアップ クラスの上位フィルター ドライバーの一覧に追加します。 コマンドは、読み込み順序で PartMgr.sys と Disklog.sys の間に MyFilter.sys を配置します。

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

次の一覧は、コマンドが送信される前の DiskDrive クラスのフィルター ドライバーを示しています。

    PartMgr
    Disklog

最初のサブコマンド (@Disklog) は、配置演算子 (@) を使用して、Disklog フィルター ドライバーに仮想カーソルを配置します。 2 番目のサブコマンド -MyFilter は、add-before 演算子 (-) を使用して、Disklog.sys の前に MyFilter.sys を追加します。

また、コマンドでは /r パラメーターも使用されます。これにより、クラス フィルターの変更を有効にする必要がある場合にシステムが再起動されます。

この例では、配置演算子が不可欠です。 DevCon が classfilter サブコマンドを処理する前に、仮想カーソルはリストの先頭にあり、フィルター ドライバーには配置されません。 カーソルがドライバー上に配置されていないときに add-before (+) 演算子を使用すると、DevCon によってドライバーがリストの先頭に追加されます。 カーソルがドライバー上に配置されていないときに add-after (-) 演算子を使用すると、一覧の末尾にドライバーが追加されます。

応答として、DevCon は DiskDrive クラスの現在の上位フィルター ドライバーを表示します。

Class filters changed. Class devices must be restarted for changes to take effect.
    PartMgr
    MyFilter
    Disklog

次のコマンドを使用して、MyFilter ドライバーを追加し、PartMgr と Disklog の間に配置することもできます。 この例では、最初のサブコマンド @PartMgrは、仮想カーソルを PartMgr フィルター ドライバーに配置します。 2 番目のサブコマンド +MyFilter は、add-after 演算子 (+) を使用して PartMgr の後に MyFilter.sys を追加します。

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

例 26: フィルター ドライバーを置き換える

次のコマンドでは 、DevCon ClassFilter 操作を使用して、diskDrive セットアップ クラスのフィルター ドライバーの一覧で、MyFilter.sys の元のコピーを新しく改良されたバージョン (MyNewFilter.sys) に置き換えます。

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

次の一覧は、コマンドが送信される前の DiskDrive クラスのフィルター ドライバーを示しています。

    PartMgr
    MyFilter
    Disklog

最初のサブコマンドは、delete 演算子 (!) を使用して、DiskDrive クラスの上位フィルター ドライバーの一覧から MyFilter を削除します。 (C:\Windows\System32\Drivers ディレクトリ内の MyFilter.sys ファイルには影響しません)。

2 番目のサブコマンドは、add-after 演算子 (+) を使用して、削除されたドライバーが占有していた位置に新しいフィルター ドライバーを配置します。 delete 演算子は、削除されたフィルターが占有していた位置にカーソルを残すので、add-before (-) 演算子と add-after (+) 演算子は同じ効果を持ちます。

また、コマンドでは /r パラメーターも使用されます。これにより、クラス フィルターの変更を有効にする必要がある場合にシステムが再起動されます。

これに対して、DevCon には DiskDrive クラスの新しいクラス フィルター構成が表示されます。

Class filters changed. Class devices must be restarted for changes to take effect.
    PartMgr
    MyNewFilter
    Disklog

例 27: フィルター ドライバーの順序を変更する

次のコマンドでは、 DevCon ClassFilter 操作を使用して、DiskDrive セットアップ クラスのフィルター ドライバーの順序を変更します。 具体的には、2 番目と 3 番目のフィルター ドライバーの順序を逆にします。

devcon /r classfilter DiskDrive upper !Disklog =@PartMgr +Disklog

次の一覧は、コマンドが送信される前の DiskDrive クラスのフィルター ドライバーを示しています。 また、コマンドの意図した結果も表示されます。

変更前 クリック後
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

最初のサブコマンドは、delete 演算子 (!) を使用して、リストから Disklog を削除します。 2 番目のサブコマンドは、start 演算子 (=) を使用して仮想カーソルを開始位置に戻し、位置指定演算子 (@) を使用して PartMgr ドライバーにカーソルを配置します。 開始演算子は、仮想カーソルがリスト内を前方にのみ移動するため、必要です。 最後のサブコマンドでは、add-after 演算子 (+) を使用して、PartMgr の後に Disklog を追加します。

これに対して、DevCon には DiskDrive クラスの新しいクラス フィルター構成が表示されます。

Class filters changed. Class devices must be restarted for changes to take effect.
    PartMgr
    Disklog
    MyNewFilter

例 28: 特定のデバイスを有効にする

次のコマンドでは 、DevCon Enable 操作を使用して、システムの問題を修正するために無効にされたプログラミング可能な割り込みコントローラーを有効にします。 コントローラーのハードウェア ID *PNP0000にはアスタリスクが含まれているため、コマンドは単一引用符文字 (') を使用して DevCon に指示し、コマンドで指定されているとおりにハードウェア ID を正確に検索します。 それ以外の場合、アスタリスクはワイルドカード文字として解釈されます。

devcon enable '*PNP0000

これに対して、DevCon はデバイスのデバイス インスタンス ID を表示し、デバイスを有効にするにはシステムを再起動する必要があることを説明します。

ACPI\PNP0000\4&B4063F4&0                                    : Enabled on reboot
Not all of 1 device(s) enabled, at least one requires reboot to complete the operation.

応答するには、システムを手動で再起動するか、 DevCon Reboot 操作を使用します。

次のコマンドは、前のコマンドに /r パラメーターを追加します。 /r パラメーターは、操作を完了するために再起動が必要な場合にのみ、システムを再起動します。

devcon /r enable '*PNP0000

これに対して、DevCon はデバイスを有効にし、システムを再起動して有効化を有効にします。

システムが起動したら、DevCon status コマンドを使用して、デバイスが有効になっていることを確認します。

devcon status '*PNP0000

ACPI\PNP0000\4&B4063F4&0
    Name: Programmable interrupt controller
    Driver is running.

例 29: クラス別にデバイスを有効にする

次のコマンドは、 DevCon Enable コマンドで Printer セットアップ クラスを指定することで、コンピューター上のすべてのプリンター デバイスを有効にします。 コマンドには /r パラメーターが含まれており、有効化を有効にする必要がある場合にシステムを再起動します。

devcon /r enable =Printer

応答として、DevCon は Printer クラスで見つかったプリンターのデバイス インスタンス ID を表示し、有効になっていることを報告します。 コマンドには /r パラメーターが含まれていましたが、プリンターを有効にするために再起動が必要なかったため、システムは再起動しませんでした。

LPTENUM\HEWLETT-PACKARDDESKJET_1120C\1&7530F08&0&LPT1.4        : Enabled
1 device(s) enabled.

例 30: ID パターンでデバイスを無効にする

次のコマンドでは、 DevCon Disable 操作を使用して、ローカル コンピューター上の USB デバイスを無効にします。 ハードウェア ID パターン (USB*) によってデバイスを識別します。 このパターンは、ハードウェア ID または互換性のある ID が "USB" で始まるすべてのデバイスと一致します。コマンドには /r パラメーターが含まれており、無効化を有効にする必要がある場合はシステムを再起動します。

メモ ID パターンを使用してデバイスを無効にする前に、影響を受けるデバイスを決定します。 これを行うには、 devcon 状態 USB\* や devcon hwids USB\* などの表示コマンドで パターンを使用します。

devcon /r disable USB*

応答として、DevCon は USB デバイスのデバイス インスタンス ID を表示し、無効になっていることを報告します。 コマンドには /r パラメーターが含まれていましたが、デバイスを無効にするために再起動が必要なかったため、システムは再起動しませんでした。

USB\ROOT_HUB\4&2A40B465&0
: Disabled
USB\ROOT_HUB\4&7EFA360&0
: Disabled
USB\VID_045E&PID_0039\5&29F428A4&0&2
: Disabled
3 device(s) disabled.

例 31: デバイス インスタンス ID でデバイスを無効にする

次のコマンドでは、 DevCon Disable 操作を使用して、ローカル コンピューター上の USB デバイスを無効にします。 このコマンドは、各 ID の前にある at 文字 (@) で示されているように、デバイス インスタンス ID によってデバイスを識別します。 各デバイス インスタンス ID は、スペースによって他のデバイス インスタンス ID から分離されます。

また、デバイス インスタンス ID にはアンパサンド文字 (&) が含まれているため、引用符で囲まれます。 コマンドには /r パラメーターが含まれており、無効化を有効にする必要がある場合はシステムを再起動します。

devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"

応答として、DevCon は USB デバイスのデバイス インスタンス ID を表示し、無効になっていることを報告します。 コマンドには /r パラメーターが含まれていましたが、デバイスを無効にするために再起動が必要なかったため、システムは再起動しませんでした。

USB\ROOT_HUB\4&2A40B465&0
: Disabled
USB\ROOT_HUB\4&7EFA360&0
: Disabled
USB\VID_045E&PID_0039\5&29F428A4&0&2
: Disabled
3 device(s) disabled.

例 32: 通信ポートのドライバーを更新する

次のコマンドでは、 DevCon Update 操作を使用して、システム上の通信ポートの現在のデバイス ドライバーを test.inf ファイルで指定されたテスト ドライバーに置き換えます。 このコマンドは、ハードウェア ID 全体が *PNP0501 (アスタリスクを含む) のデバイスにのみ影響します。

このコマンドを使用すると、システム上の署名されたドライバーをテストまたはトラブルシューティング用の代替ドライバーに置き換えたり、デバイスを同じドライバーの最新バージョンに関連付けたりできます。

devcon update c:\windows\inf\test.inf *PNP0501

これに対して、DevCon は、ドライバーが Windows ロゴ テストに合格しなかったことを説明する ハードウェア インストール 警告を表示します。 ダイアログ ボックスで [ 続行 ] ボタンを選択すると、インストールが続行されます。

次に、DevCon に次の成功メッセージが表示されます。

Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
Drivers updated successfully.

また、 DevCon UpdateNI 操作 ( DevCon Update 操作の非インターアクティブ バージョン) を使用して、ドライバーを更新することもできます。 DevCon UpdateNI 操作は DevCon Update 操作と同じですが、応答を必要とするすべてのユーザー プロンプトが抑制され、プロンプトに対する既定の応答が想定されます。

次のコマンドでは、 DevCon UpdateNI 操作を使用してテスト ドライバーをインストールします。

devcon updateni c:\windows\inf\test.inf *PNP0501

この場合、DevCon には ハードウェア インストール の警告は表示されません。 代わりに、既定の応答である インストールの停止を前提としています。 その結果、DevCon はドライバーを更新できず、エラー メッセージが表示されます。

Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
devcon failed.

例 33: デバイスをインストールする

次のコマンドでは、 DevCon インストール 操作を使用して、ローカル コンピューターにキーボード デバイスをインストールします。 コマンドには、デバイス (keyboard.inf) の INF ファイルへの完全なパスとハードウェア ID (*PNP030b) が含まれています。

devcon /r install c:\windows\inf\keyboard.inf *PNP030b

これに対して DevCon は、デバイスがインストールされたことを報告します。つまり、新しいデバイスのデバイス ノードを作成し、デバイスのドライバー ファイルを更新しました。

Device node created. Install is complete when drivers files are updated...
Updating drivers for *PNPO30b from c:\windows\inf\keyboard.inf
Drivers updated successfully.

例 34: 無人セットアップを使用してデバイスをインストールする

次の例は、Microsoft Windows XP の無人インストール中に Microsoft ループバック アダプターをインストールする方法を示しています。

無人セットアップ中にこのデバイスをインストールするには、まず、フロッピー ディスクに次のファイルを追加します: devcon.exe と netloop.inf (C:\Windows\inf\netloop.inf)。

次に、無人セットアップ ファイルの [GUIRunOnce] セクションに、次の DevCon コマンドを追加します。

a:\devcon /r install a:\Netloop.inf '*MSLOOP

このコマンドは、ハードウェア ID *MSLOOP を使用してループバック アダプターを識別します。 "*MSLOOP" の前の単一引用符文字は、文字列をリテラルで解釈するように DevCon に指示します。つまり、アスタリスクはワイルドカード文字ではなく、ハードウェア ID の一部として解釈されます。

コマンドでは、DevCon がインストールで Netloop.inf ファイル (フロッピー ディスク上) を使用することも指定します。 /r パラメーターは、インストールを完了するために再起動が必要な場合にのみ、コンピューターを再起動します。

最後に、無人セットアップ ファイルにネットワーク構成設定を追加し、無人セットアップを実行します。

例 35: デバイス インスタンス ID パターンでデバイスを削除する

次のコマンドでは、 DevCon Remove 操作を使用して、コンピューターからすべての USB デバイスを削除します。 "USB\" 文字列で始まる任意のデバイス インスタンス ID (レジストリ パス) と一致するデバイス インスタンス ID パターンによってデバイスを識別します。 at 文字 (@) は、デバイス インスタンス ID とハードウェア ID または互換性のある ID を区別します。 コマンドには、remove プロシージャを有効にするために必要な場合にシステムを再起動する /r パラメーターも含まれています。

警告

パターンを使用してデバイスを削除する前に、影響を受けるデバイスを決定します。 これを行うには、 や devcon hwids @usb\*などのdevcon status @usb\*表示コマンドで パターンを使用します。

devcon /r remove @usb\*

これに対して、DevCon には、削除したデバイスのデバイス インスタンス ID が表示されます。

USB\ROOT_HUB\4&2A40B465&0                             : Removed
USB\ROOT_HUB\4&7EFA360&0                              : Removed
USB\VID_045E&PID_0039\5&29F428A4&0&2                  : Removed
3 device(s) removed.

例 36: 特定のネットワーク デバイスを削除する

次のコマンドでは、 DevCon Remove 操作を使用して、ローカル コンピューターから NDISWAN ミニポート ドライバーをアンインストールします。 コマンドは Net クラスを指定し、ハードウェア ID または互換性 ID に "ndiswan" が含まれるクラス内のデバイスを指定して検索を絞り込みます。コマンドには /r パラメーターも含まれています。このパラメーターは、remove プロシージャを有効にするために再起動が必要な場合にシステムを再起動します。

警告 パターンを使用してデバイスを削除する前に、影響を受けるデバイスを決定します。 これを行うには、 や devcon hwids =net *ndiswan*などのdevcon status =net *ndiswan表示コマンドで パターンを使用します。

devcon /r remove =net *ndiswan*

これに対して、DevCon は削除したデバイスのデバイス インスタンス ID を表示します。

ROOT\MS_NDISWANIP\0000 : Removed 1 device(s) removed.

例 37: コンピューターで新しいデバイスをスキャンする

次のコマンドでは、 DevCon Rescan 操作を使用して、ローカル コンピューターで新しいデバイスをスキャンします。

devcon rescan

これに対して、DevCon はシステムをスキャンしたが、新しいデバイスが見つからなかったことを報告します。

Scanning for new hardware.
Scanning completed.

例 38: デバイスを再起動する

次のコマンドでは、 DevCon 再起動 操作を使用して、ローカル コンピューター上のループバック アダプターを再起動します。 コマンドは検索を Net セットアップ クラスに制限し、そのクラス内でループバック アダプターのデバイス インスタンス ID @'ROOT\*MSLOOP\0000 を指定します。 at 文字 (@) は、文字列をデバイス インスタンス ID として識別します。 リテラル検索を要求する単一引用符文字 (') を使用すると、DevCon は ID のアスタリスクをワイルドカード文字として解釈できなくなります。

devcon restart =net @'ROOT\*MSLOOP\0000

応答として、DevCon はデバイスのデバイス インスタンス ID を表示し、結果を報告します。

ROOT\*MSLOOP\0000                                              : Restarted
1 device(s) restarted.

例 39: ローカル コンピューターを再起動する

次のコマンドでは、 DevCon Reboot 操作を使用して、ローカル コンピューター上のオペレーティング システムを再起動し、再起動をハードウェア インストールに関連付けます。 /r パラメーターとは異なり、DevCon Reboot 操作は別の操作からのリターン コードに依存しません。

このコマンドは、システムの再起動を必要とするスクリプトおよびバッチ ファイルに含めることができます。

devcon reboot

応答として、DevCon は、コンピューターの再起動 (ローカル コンピューターの再起動) を示すメッセージを表示します。

DevCon では、標準の ExitWindowsEx 関数を使用して再起動します。 ユーザーがコンピューター上のファイルを開いている場合、またはプログラムが閉じない場合、ユーザーがファイルを閉じるか、プロセスを終了するためのシステム プロンプトに応答するまで、システムは再起動されません。

例 40: レガシ デバイスにハードウェア ID を割り当てる

次のコマンドでは、 DevCon SetHwID 操作を使用して、ハードウェア ID ビープ音をレガシ ビープ音デバイスに割り当てます。

このコマンドでは、ビープ音のレガシ デバイスにハードウェア ID または互換性のある ID がないため、デバイスのデバイス インスタンス ID ROOT\LEGACY_BEEP\0000 が使用されます。 at 文字 (@) を使用して、文字列がデバイス インスタンス ID であることを示します。

コマンドでは、ID を配置するためにシンボル パラメーターは使用されません。 既定では、DevCon はハードウェア ID リストの末尾に新しいハードウェア ID を追加します。 この場合、デバイスには他のハードウェア ID がないため、配置は関係ありません。

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

応答として、DevCon は、デバイスのハードウェア ID リストにビープ音が追加されたことを示すメッセージを表示します。 また、結果のハードウェア ID の一覧も表示されます。 この場合、一覧にはハードウェア ID が 1 つだけ存在します。

ROOT\LEGACY_BEEP\0000                              : beep
Modified 1 hardware ID(s).

例 41: すべてのレガシ デバイスにハードウェア ID を追加する

次のコマンドでは 、DevCon SetHwID 操作を使用して、すべてのレガシ デバイスのハードウェア ID の一覧にハードウェア ID (レガシ) を追加します。

コマンドは symbol パラメーターを - 使用して、デバイスのハードウェア ID リストの末尾に新しいハードウェア ID を追加します(いずれかのデバイスに推奨ハードウェア ID が作成されている場合)。 また、デバイス インスタンス ID パターン を使用して、 @ROOT\LEGACY\*コンピューター上のレガシ デバイス (つまり、デバイス インスタンス ID が で ROOT\LEGACY*始まるすべてのデバイス) を識別します。

devcon sethwid @ROOT\LEGACY* := -legacy

これに対して、DevCon には、影響を受けるすべてのデバイスの結果のハードウェア ID リストが表示されます。

ROOT\LEGACY_AFD\0000                                        : legacy
ROOT\LEGACY_BEEP\0000                                    : beep,legacy
ROOT\LEGACY_CRCDISK\0000                                    : legacy
ROOT\LEGACY_DMBOOT\0000                                     : legacy
ROOT\LEGACY_DMLOAD\0000                                     : legacy
ROOT\LEGACY_FIPS\0000                                       : legacy
...
ROOT\LEGACY_WANARP\0000                                     : legacy
Modified 27 hardware ID(s).

デバイスのグループに同じハードウェア ID を割り当てた後、他の DevCon 操作を使用して、1 つのコマンドでデバイスを表示および変更できます。

たとえば、次のコマンドは、すべてのレガシ デバイスの状態を表示します。

devcon status legacy

例 42: すべてのレガシ デバイスからハードウェア ID を削除する

次のコマンドでは、 DevCon SetHwID 操作を使用して、すべてのレガシ デバイスのハードウェア ID の一覧からハードウェア ID ( レガシ) を削除します。

コマンドは、ハードウェア ID ( レガシ) を使用して、そのハードウェア ID を持つすべてのデバイスを識別します。 次に、 ! シンボル パラメーターを使用して 、レガシ ハードウェア ID を削除します。

devcon sethwid legacy := !legacy

これに対して、DevCon には、影響を受けるすべてのデバイスの結果のハードウェア ID リストが表示されます。

ROOT\LEGACY_AFD\0000                                        :
ROOT\LEGACY_BEEP\0000                                    : beep
ROOT\LEGACY_CRCDISK\0000                                    :
ROOT\LEGACY_DMBOOT\0000                                     :
ROOT\LEGACY_DMLOAD\0000                                     :
ROOT\LEGACY_FIPS\0000                                       :
...
ROOT\LEGACY_WANARP\0000                                     :
Modified 27 hardware ID(s).

例 43: ハードウェア ID の追加、削除、および置換

次の一連の例は、 DevCon SetHwID 操作のさまざまな機能を使用する方法を示しています。

このシリーズでは、架空のデバイス DeviceX を使用し、デバイス インスタンス ID ROOT\DeviceX\0000 を使用します。 DevCon を使用する前に、デバイスには次のハードウェア ID の一覧がありました。

Hw3 Hw4

次のコマンドでは、 シンボルを + 使用して、DeviceX のハードウェア ID の一覧の先頭に Hw1Hw2 を追加します。 Hw2 は既に一覧に表示されるため、移動され、追加されません。 コマンドは、ID の前の at 文字 (@) で示されているように、デバイスインスタンス ID によってデバイスを識別します。

devcon sethwid @ROOT\DEVICEX\0000 := +Hw1 Hw2

応答として、DevCon はデバイスの新しいハードウェア ID の一覧を表示します。 Hw1Hw2 は、指定した順序でリストの先頭に表示されることに注意してください。

ROOT\DEVICEX\0000                         : Hw1,Hw2,Hw3,Hw4
Modified 1 hardware ID(s).

また、DevCon は、1 つのハードウェア ID リスト、つまり 1 つのデバイスのハードウェア ID リストを変更したことを報告します。

次のコマンドでは、 ! 記号を使用して Hw1 ハードウェア ID を削除します。 次に、ハードウェア ID Hw5 をシンボル パラメーターなしで一覧表示します。 シンボル パラメーターがない場合、SetHwID は、デバイスのハードウェア ID リストの末尾にハードウェア ID を追加します。

このコマンドは、 DevCon SetHwID 操作の他のシンボル パラメーターとは異なり、 ! シンボルがプレフィックスとなるハードウェア ID にのみ適用されることを示しています。

devcon sethwid @ROOT\DeviceX\0000 := !Hw1 Hw5

応答として、DevCon は DeviceX の結果のハードウェア ID リストを表示します。

ROOT\DEVICEX\0000                         : Hw2,Hw3,Hw4,Hw5
Modified 1 hardware ID(s).

次のコマンドでは、 = パラメーターを使用して、DeviceX の一覧内のすべてのハードウェア ID を 1 つのハードウェア ID DevX に置き換えます。

devcon sethwid @ROOT\DeviceX\0000 := =DevX

応答として、DevCon は DeviceX の結果のハードウェア ID の一覧を表示します。

ROOT\DEVICEX\0000                         : DevX
Modified 1 hardware ID(s).

成功メッセージは、DevCon が 1 つのデバイスのハードウェア ID を変更したことを示します。

例 44: HAL を強制的に更新する

次の例は、DevCon を使用してコンピューター上の HAL を更新する方法を示しています。 この例では、テスト担当者は、テスト目的でコンピューターに最適なユニプロセッサ APCI APIC HAL をマルチプロセッサ APCI APIC HAL に置き換えたいと考えています。

1 つ目のコマンドでは 、DevCon SetHwID 操作を使用して、HAL のハードウェア ID を acpiapic_up (ユニプロセッサ HALs のハードウェア ID) からマルチプロセッサ HALs のハードウェア ID acpiapic_mpに変更します。

HAL の INF ファイルには、ユニプロセッサとマルチプロセッサの両方の DLL のドライバーが含まれているため、ハードウェア ID を変更する必要があります。 システムは、デバイスのハードウェア ID に基づいて INF ファイルから最も適切なドライバーを選択します。 ハードウェア ID を変更しない場合、 DevCon Update コマンドは単にユニプロセッサ HAL ドライバーを再インストールします。

次のコマンドでは、インスタンス ID ROOT\ACPI_HAL\0000 で HAL を識別します。ID の前の文字で @ 示されます。 コマンドは、文字を + 使用して、HAL の一覧の最初のハードウェア ID を acpiapic_mp します。 次に、 ! 文字を使用して、HAL の ID の一覧から acpiapic_up ハードウェア ID を削除します。

devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up

応答として、DevCon は HAL の次の新しいハードウェア ID の一覧を表示します。

ROOT\ACPI_HAL\0000                         : acpiapic_mp
Modified 1 hardware ID(s).

次のコマンドでは、 DevCon Update 操作を使用して HAL のドライバーを更新します。

devcon update c:\windows\inf\hal.inf acpiapic_mp

次に、DevCon に次の成功メッセージが表示されます。

Updating drivers for acpiapic_mp from c:\windows\inf\hal.inf.
Drivers updated successfully.

例 45: ドライバー パッケージを追加および削除する

次の例では、DevCon を使用して、ドライバー ストアにサード パーティ (OEM) ドライバー パッケージを追加、削除、および表示する方法を示します。

最初のコマンド DevCon Dp_add コマンドは、WDK のトースター サンプル ドライバーの INF ファイルをドライバー ストア (つまり、%Windir%\inf ディレクトリ) にコピーします。 コマンドには、トースター サンプル ドライバーの INF ファイルへの完全修飾パスが含まれています。

このコマンドは、サード パーティ (OEM) のドライバーとデバイスを対象としていますが、トースター サンプルを使用してコマンドをテストできます。

devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf

これに対して、DevCon は、ドライバー ストアにトースター INF ファイルを追加し、Oem2.inf という名前を付けたと報告します。

Driver Package 'oem2.inf' added.

ドライバー ストアにコピーする前に、Windows は INF ファイルのバイナリ バージョンとドライバー ストア内の INF ファイルのバイナリ バージョンを比較して、重複するファイルが追加されていないことを確認します。 たとえば、コマンドを繰り返して Toaster.inf をドライバー ストアに追加した場合、DevCon は新しい OEM*.inf ファイルを作成しません。 次の DevCon 出力に示すように、既存のファイルの名前のみを報告します。

devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.

devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.

ドライバー ストアからトースター ドライバーのドライバー パッケージを削除するには、ドライバーの OEM*.inf ファイル名を使用する必要があります。 ドライバーのファイル名を見つけるには、 DevCon Dp_enum コマンドを使用します。

次のコマンドは、すべての OEM ドライバー パッケージとそのプロパティの一覧を示します。

devcon dp_enum

応答として、DevCon は次の表示を生成します。

c:\WinDDK\5322\tools\devcon\i386>devcon dp_enum
The following 3rd party Driver Packages are on this machine:
oem2.inf
    Provider: Microsoft
    Class: unknown

この情報は、指定されていないデバイス クラス (トースター) を使用して Microsoft によって提供されるドライバー パッケージの名前が OEM2.inf であることを示します。 この情報を使用して、ファイルに関連付けられているドライバー パッケージを削除できます。

次のコマンドは、ドライバー ストアから OEM2.inf ファイルを、関連付けられているプリコンパイル済み INF (.pnf) ファイルとカタログ (.cat) ファイルと共に削除します。 コマンドは、OEM*.inf ファイル名を使用します。

devcon dp_delete oem2.inf

応答として、DevCon はコマンドが成功したことを示すメッセージを表示します。

Driver Package 'oem2.inf' deleted.

DevCon Dp_delete コマンドでは、OEM*.inf ファイル名が必要です。 INF ファイルの元の名前を使用しようとすると、次の DevCon 出力に示すようにコマンドは失敗します。

devcon dp_delete C:\WinDDK\5322\src\general\toaster.inf
Deleting the specified Driver Package from the machine failed.
devcon failed.