デバイス コンソール (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 操作とデバイス セットアップ クラスを使用して、Ports デバイス セットアップ クラス内のすべてのデバイスのハードウェア ID を検索します。 クラス名の前の等号 (=) は、ID ではなくクラスであることを示します。

devcon hwids =ports

これに対して、DevCon は Ports セットアップ クラスの 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 レジストリ サブキー内のデバイス) で始まるすべてのデバイスのドライバー パッケージを一覧します。 このコマンドでは、アットマーク (@) を使用して、フレーズがデバイス インスタンス 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 を使用します。 アットマーク (@) は、文字列がデバイス インスタンス ID であり、ハードウェア ID または互換性のある ID ではないことを示します。

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

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

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

devcon stack =Volume

これに対して、DevCon はボリューム クラス内のデバイスに必要なスタックを表示します。 返されるデータには、デバイス インスタンス 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 を検索してプリンター ポート インターフェイスのセットアップ クラスを見つけて、デバイス インスタンス 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 で表されるデバイスのデバイス セットアップ クラスを検索します。 アットマーク (@) は、ID をデバイス インスタンス ID として識別します。 ID にはアンパサンド文字が含まれているため、引用符で囲まれています。

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

これに対して、DevCon は、クラスを含むプリンター ポート インターフェイスのドライバー スタックを表示します。 ディスプレイは、プリンター ポートがシステム クラスにあることを示します。

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 のプレフィックスが付いたアットマーク (@) は、文字列をデバイス インスタンス 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 を示すアットマーク (@) と、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 FindAll コマンドと同じパラメーターを使用して DevCon Find コマンドを実行することで、DevCon FindDevCon 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 セットアップ クラスの上位フィルター ドライバーを表示します。 このコマンドにはクラス フィルター演算子が含まれていないため、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 操作を使用して、DiskDrive セットアップ クラスの上位フィルター ドライバーの一覧に架空のフィルター ドライバー (MyFilter.sys) を追加します。 このコマンドは、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 はドライバーをリストの末尾に追加します。

これに対して、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 操作を使用して、MyFilter.sys の元のコピーを、DiskDrive セットアップ クラスのフィルター ドライバーの一覧にある新しい改良版である 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 演算子 (+) を使用して、削除されたドライバーが占有していた位置に新しいフィルター ドライバーを配置します。 削除演算子は、削除されたフィルターが占有していた位置にカーソルを残すので、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 番目のサブコマンドは、開始演算子 (=) を使用して仮想カーソルを開始位置に戻し、位置演算子 (@) を使用して 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 にはアスタリスクが含まれているため、コマンドは単一引用符文字 (') を使用して、コマンドで指定されているとおりに正確にハードウェア ID を見つけるために DevCon を指示します。 それ以外の場合、アスタリスクはワイルドカード文字として解釈されます。

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

devcon /r enable =Printer

これに対して、DevCon はプリンター クラスで見つかったプリンターのデバイス インスタンス 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 status 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 の前にあるアットマーク (@) で示されているように、デバイス インスタンス 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 Update 操作の非対話型バージョンである DevCon UpdateNI 操作を使用しても、ドライバーを更新できます。 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 Install 操作を使用して、ローカル コンピューターにキーボード デバイスをインストールします。 このコマンドには、デバイス (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 パターンによってデバイスを識別します。 アットマーク (@) は、デバイス インスタンス ID とハードウェア ID または互換性のある ID を区別します。 このコマンドには、削除プロシージャを有効にする必要がある場合にシステムを再起動する /r パラメーターも含まれています。

警告

パターンを使用してデバイスを削除する前に、影響を受けるデバイスを特定します。 これを行うには、devcon status @usb\*devcon hwids @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 パラメーターも含まれています。このパラメーターは、削除プロシージャを有効にするために再起動が必要な場合にシステムを再起動します。

警告 パターンを使用してデバイスを削除する前に、影響を受けるデバイスを決定します。 これを行うには、devcon status =net *ndiswandevcon hwids =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 Restart 操作を使用して、ローカル コンピューター上のループバック アダプターを再起動します。 このコマンドは、検索を Net セットアップ クラスに制限し、そのクラス内でループバック アダプター @'ROOT\*MSLOOP\0000 のデバイス インスタンス ID を指定します。 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 を使用します。 アットマーク (@) を使用して、文字列がデバイス インスタンス 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 (レガシ) を追加します。

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

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 操作のさまざまな機能を使用する方法を示しています。

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

Hw3 Hw4

次のコマンドは、+ シンボルを使用して、DeviceX のハードウェア ID の一覧の先頭に Hw1Hw2 を追加します。 Hw2 は既に一覧に表示されているため、移動され、追加されません。 このコマンドは、ID の前のアットマーク (@) で示されているように、デバイスインスタンス 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 から HAL のハードウェア ID に変更し、マルチプロセッサ HAL のハードウェア ID である acpiapic_mp に変更します。

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

次のコマンドは、ID の前にある @ 文字が示しているように、インスタンス ID である ROOT\ACPI_HAL\0000 ごとに HAL を識別します。 このコマンドは、+ 文字を使用して、acpiapic_mp を HAL のリストの最初のハードウェア ID にします。 次に、! 文字を使用して、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.