Device Console (DevCon.exe) 範例

重要

PnPUtil 隨附於每個 Windows 版本,並利用最可靠且安全的 API,建議使用它。 如需使用 PnPutil 而非 devcon 的詳細資訊,請參閱 取代 DevCon

範例分類

本節提供下列裝置控制台 (DevCon.exe) 命令的範例:

DevCon HwIDs

DevCon 類別

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon 資源

DevCon Stack

DevCon 狀態

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon Enable

DevCon Disable

DevCon Update 和 UpdateNI

DevCon Install

DevCon Remove

DevCon Rescan

DevCon 重新啟動

DevCon Reboot

DevCon SetHwID

DevCon dp_add、dp_deleted、dp_enum

範例詳細資料

範例 1:尋找所有硬體識別碼

由於 DevCon 作業使用識別碼和識別碼模式來識別裝置,因此使用 DevCon 的常見第一個步驟是在電腦上為裝置建立硬體標識元參考檔案。

下列命令會使用 DevCon HwIDs 作業,其會傳回標識碼和裝置描述。 它會使用通配符 (*) 來代表本機計算機上的所有裝置。

devcon hwids *

因為輸出冗長且重複使用,所以請將輸出儲存在文本檔中以供參考。

下列命令會使用通配符 (*) 來代表計算機上的所有裝置。 它會使用重新導向字元 (>) ,將命令輸出儲存在 hwids.txt 檔案中。

devcon hwids * > hwids.txt

範例 2:使用模式尋找硬體識別碼

若要尋找特定裝置的硬體識別碼,請輸入硬體識別碼或模式、相容的標識碼或模式、裝置實例標識碼或模式,或裝置安裝類別的名稱。

下列命令會使用 DevCon HwID 作業 和模式來尋找電腦上的磁碟驅動器硬體識別碼。 (使用者假設模式出現在其中一個裝置識別碼中。) 此命令會使用通配符 () * 來代表任何標識符中可能位於或後面“floppy” 一字的所有字元。

devcon hwids *floppy*

為了回應,DevCon 會在計算機上顯示磁碟驅動器的裝置實例標識碼、硬體標識碼和相容標識符。 您可以在後續的 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.

在此情況下,“floppy” 片語發生在計算機上只有一部裝置的硬體標識碼或相容標識符中。 如果它發生在多個裝置的標識碼中,則其標識碼中有“floppy” 的所有裝置都會出現在輸出中。

範例 3:使用 類別尋找硬體識別碼

下列命令會使用 DevCon HwID 作業 和裝置安裝類別來尋找埠裝置安裝類別中所有裝置的硬體識別碼。 類別名稱前面的等號 (=) 表示它是類別,而不是標識符。

devcon hwids =ports

為了回應,DevCon 會顯示埠設定類別中三個裝置的硬體標識碼和相容標識碼。

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 安裝類別中每個裝置的裝置實例識別碼和描述。

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 安裝類別中提供裝置的硬體識別碼。 下列命令會使用 DevCon HwIDs 作業來列出 Net 安裝類別中的裝置。 在 DevCon HwIDs 命令中,類別名稱前面會加上等號 () = 表示它是類別,而不是標識符。

devcon hwids =net

產生的顯示會列出Net類別中的裝置,並包含類別中裝置的裝置實例標識碼、硬體標識碼和相容的標識碼。

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 作業來搜尋本機電腦上滑鼠裝置所使用的設備驅動器。 它會透過其中一個硬體標識碼 HID\Vid_045e&Pid_0039&Rev_0121來識別裝置。 硬體標識碼會以引號括住,因為它包含連字元 (&) 。

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

為了回應,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 driver:
        C:\WINDOWS\System32\DRIVERS\mouhid.sys
        C:\WINDOWS\System32\DRIVERS\mouclass.sys
1 matching device(s) found.

範例 10:依硬體標識碼模式列出驅動程式套件

下列命令會使用 DevCon DriverNodes 命令和識別碼模式來列出軟體列舉裝置的驅動程序節點。 模式對於尋找可能不在相同安裝類別中的類似裝置相關信息很有用。

下列命令會使用標識符模式 sw\* 來指定其硬體識別碼或相容識別碼以 “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:依裝置實例標識碼模式列出驅動程式套件

下列命令會使用 DevCon DriverNodes 作業,列出其裝置實例標識碼以ROOT\MEDIA 開頭之所有裝置的驅動程式套件,也就是 Enum\Root\Media 登錄子機碼中的裝置。 命令會使用 at 字元 (@) 來表示片語位於裝置實例識別碼中。

devcon drivernodes @ROOT\MEDIA*

為了回應,DevCon 會顯示裝置實例標識符開頭為 “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 控制器。 等號 (=) 前面加上 「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:依標識符列出裝置的資源

下列命令會使用 DevCon Resources 作業來列出配置給系統定時器的資源。 此命令會使用系統定時器 ACPI\PNP0100的硬體識別碼來指定裝置。

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 命令中使用系統定時器的裝置實例識別碼。 字元 (@) 表示字串是裝置實例識別碼,而不是硬體標識碼或相容標識符。

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

範例 14:顯示儲存裝置的驅動程式堆疊

下列命令會使用 DevCon Stack 作業來搜尋磁碟區設定類別中的裝置,並顯示這些裝置的預期驅動程式堆疊。 等號 (=) 表示字串是類別名稱。

devcon stack =Volume

為了回應,DevCon 會顯示 Volume 類別中裝置的預期堆疊。 傳回的數據報括每個裝置的裝置實例標識碼和描述、裝置設定類別的 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 作業會傳回裝置的設定類別,以及上層和下層篩選驅動程式。 下列命令會尋找印表機埠介面的安裝類別,方法是尋找其裝置實例識別碼,然後使用裝置實例標識元尋找其安裝類別。

下列命令會使用 DevCon HwIDs 作業,使用印表機埠硬體識別碼中的片語 「LPT」 來尋找印表機埠介面的裝置實例識別碼。

devcon hwids *lpt*

為了回應,DevCon 會傳回裝置實例標識碼 (以粗體文字顯示) 和印表機埠介面的硬體標識碼。

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

下一個命令會使用 DevCon Stack 作業來尋找裝置實例識別碼所代表裝置的裝置安裝類別。 字元 (@) 會將標識碼識別為裝置實例標識碼。 標識碼會以引號括住,因為它包含連字元。

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 作業來顯示迷你埠驅動程式裝置的預期堆疊。 它會在 Net 安裝類別中搜尋其硬體識別碼或相容標識碼中有「迷你埠」的裝置。

請注意,此命令會先將搜尋限制為 Net 安裝程式類別,然後尋找 「miniport」 字串。 它找不到 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:依裝置實例標識碼顯示裝置的狀態

尋找特定裝置狀態的最可靠方式是使用裝置的裝置實例標識碼。

下列命令會在 DevCon Status 命令中使用本機電腦上的 I/O 控制器裝置實例識別碼。 此命令包含裝置的裝置實例標識碼PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00。 在字元 (@) 識別元前置詞的 ,會將字串識別為裝置實例識別符。 標識碼必須以引號括住,因為它包含連字元。

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

在 命令中,每個標識碼會以空格分隔其他標識符。 請注意,GenDisk 和 GenCdRom 是相容的標識碼,而其他標識碼則是硬體識別碼。

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:依硬體標識碼模式尋找裝置

下列命令會使用 DevCon Find 作業來搜尋滑鼠裝置。 具體來說,此命令會搜尋計算機是否有硬體標識碼或相容標識碼包含 「的裝置。」。,而且找不到 」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 顯示作業也會尋找硬體識別碼,因此您可以使用任何顯示作業來搜尋硬體識別碼。 根據您在輸出中所需的內容選取作業。 例如,若要尋找本機計算機上滑鼠相關裝置所使用的設備驅動器,請提交下列命令。

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:依裝置實例標識碼或類別尋找裝置

下列命令會使用 DevCon Find 作業,在本機電腦上顯示所有舊版裝置。 因為舊版裝置沒有硬體標識碼,所以您必須依其裝置實例標識碼搜尋它們, (登錄路徑) 、ROOT\LEGACY 或其設定類別 LegacyDriver。

第一個命令會依裝置實例標識碼模式尋找舊版驅動程式。 標識符模式前面會以字元 () @ 來表示裝置實例標識符,後面接著通配符 (*) 尋找 ROOT\Legacy 子機碼中的所有裝置。

devcon find @root\legacy*

第二個命令會搜尋 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 是安裝類別,而不是識別碼。

devcon findall =net

為了回應,DevCon 會列出 Net 安裝程式類別中的下列七個裝置。 前六個是標準迷你埠驅動程式裝置。 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 FindAll作業。

devcon find =net

為了回應,DevCon 會列出 Net 安裝程式類別中的下列六個裝置。

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 作業,將虛構篩選 Disklog.sys 新增至 DiskDrive 設定類別的上層篩選驅動程式清單。

此命令會使用 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 不會新增驅動程式,也就是說,除非驅動程式在 Services 登錄子機碼 (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services) 中有子機碼。

下列命令會測試這項保護功能。 它會嘗試將 「Disklgg」 (而不是 「Disklog」) 新增至 DiskDrive 類別的上限篩選清單。 輸出示範命令失敗。

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

範例 25:在類別清單中插入篩選驅動程式

下列命令會使用 DevCon ClassFilter 作業,將虛構篩選驅動程式 MyFilter.sys 新增至 DiskDrive 設定類別的上限篩選驅動程式清單。 命令會將 MyFilter.sys 放在載入順序 PartMgr.sys 和 Disklog.sys 之間。

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

下列清單會顯示在提交命令之前,DiskDrive 類別的篩選驅動程式。

    PartMgr
    Disklog

第一個子命令 @Disklog會使用定位運算子 (@) 將虛擬游標放在 Disklog 篩選驅動程式上。 第二個子命令 -MyFilter 會使用 add-before 運算符 (-) 在 Disklog.sys 之前新增 MyFilter.sys。

此命令也會使用 /r 參數,如果需要讓類別篩選條件變更生效,則會重新啟動系統。

在此範例中,定位運算符是不可或缺的。 在 DevCon 處理任何 classfilter 子命令之前,虛擬數據指標會位於清單的開頭,而且不會放置在任何篩選驅動程式上。 如果您在游標不在驅動程式上時使用附加元件 (+) 運算元,DevCon 會將驅動程式新增至清單的開頭。 如果您在游標不在驅動程式上時使用附加元件 (-) 運算元,它會將驅動程式新增至清單的結尾。

為了回應,DevCon 會顯示 DiskDrive 類別的目前上限篩選驅動程式。

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

您也可以使用下列命令來新增 MyFilter 驅動程式,並將它放在 PartMgr 與 Disklog 之間。 在此範例中,第一個子命令 @PartMgr會將虛擬游標放在 PartMgr 篩選驅動程式上。 第二個子命令 +MyFilter 會使用 add-after 運算子 (+) 在 PartMgr 之後新增 MyFilter.sys。

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

範例 26:取代篩選驅動程式

下列命令會使用 DevCon ClassFilter 作業,在DiskDrive安裝類別的篩選驅動程式清單中,以新的和改良的版本 MyNewFilter.sys 取代原始的 MyFilter.sys 複本。

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

下列清單會顯示在提交命令之前,DiskDrive 類別的篩選驅動程式。

    PartMgr
    MyFilter
    Disklog

第一個子命令會使用 delete 運算子 () 從 DiskDrive 類別的上限篩選驅動程式清單中刪除 MyFilter。 (它不會影響 C:\Windows\System32\Drivers 目錄中的 MyFilter.sys 檔案。)

第二個子命令會使用載入宏運算子 () + 將新的篩選驅動程式放在已刪除驅動程式佔用的位置。 因為 delete 運算符會將游標留在已刪除篩選所佔用的位置,所以載入宏 (-) 和附加元件後 (+) 運算符具有相同的效果。)

此命令也會使用 /r 參數,如果需要讓類別篩選條件變更生效,則會重新啟動系統。

為了回應,DevCon 會顯示 DiskDrive 類別的新類別篩選組態。

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

範例 27:變更篩選驅動程式的順序

下列命令會使用 DevCon ClassFilter 作業來變更 DiskDrive 安裝類別的篩選條件驅動程式順序。 具體而言,它會反轉第二和第三個篩選驅動程序的順序。

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

下列清單會顯示在提交命令之前,DiskDrive 類別的篩選驅動程式。 它也會顯示命令的預期結果。

之前 After
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

第一個子命令會使用 delete 運算子 (!) 從清單中刪除 Disklog。 第二個子命令使用 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 作業來啟用已停用以修正系統問題的可程式化中斷控制器。 因為控制器硬體標識碼 *PNP0000包含星號,所以命令會使用單引號字元 (') 指示 DevCon,精確地尋找命令中指定的硬體識別符。 否則,星號會解譯為通配符。

devcon enable '*PNP0000

為了回應,DevCon 會顯示裝置的裝置實例識別碼,並說明您必須重新啟動系統才能啟用裝置。

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 狀態命令來確認裝置已啟用。

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 類別中找到的印表機裝置實例識別碼,並報告其已啟用。 雖然命令包含 /r 參數,但系統並未重新啟動,因為不需要重新啟動才能啟用印表機。

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

範例 30:依標識符模式停用裝置

下列命令會使用 DevCon Disable 作業來停用本機電腦上的 USB 裝置。 它會以硬體標識碼模式識別裝置, (USB*) 。 此模式會比對任何硬體標識碼或相容標識符開頭為 “USB” 的裝置。此命令包含 /r 參數,如果需要讓停用生效,就會重新啟動系統。

注意 使用標識碼模式停用裝置之前,請先判斷哪些裝置會受到影響。 若要這樣做,請使用顯示命令中的模式,例如 devcon status USB\* 或 devcon hwids USB\*。

devcon /r disable USB*

為了回應,DevCon 會顯示USB裝置的裝置實例標識碼,並回報其已停用。 雖然命令包含 /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:依裝置實例標識碼停用裝置

下列命令會使用 DevCon Disable 作業來停用本機電腦上的 USB 裝置。 此命令會依裝置實例標識碼識別裝置,如前面字元 (@) 所指示。 每個裝置實例標識碼會以空格分隔彼此。

此外,因為裝置實例標識碼包含連字元 (&) ,所以它們會以引號括住。 此命令包含 /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裝置的裝置實例標識碼,並報告其已停用。 雖然命令包含 /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 檔案中指定的測試驅動程式。 此命令只會影響整個硬體標識碼為 *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 Install 作業,在本機電腦上安裝鍵盤裝置。 此命令包含裝置 (keyboard.inf) 之 INF 檔案的完整路徑,以及硬體標識碼 (*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

此命令會使用其硬體識別碼 *MSLOOP 來識別回送配接器。 “*MSLOOP” 前面的單引號字元會告訴 DevCon 以常值方式解譯字串,也就是將星號解譯為硬體標識碼的一部分,而不是通配符。

此命令也會指定 DevCon 在安裝) 的磁碟驅動器上使用 Netloop.inf 檔案 (。 只有在需要重新啟動才能完成安裝時, /r 參數才會重新啟動計算機。

最後,將網路組態設定新增至自動安裝檔案,並執行自動安裝。

範例 35:依裝置實例標識碼模式移除裝置

下列命令會使用 DevCon Remove 作業,從電腦移除所有 USB 裝置。 它會依裝置實例標識符模式來識別裝置,該模式符合以 「USB\」 字串開頭的任何裝置實例識別碼 (登錄路徑) 。 字元 () @ 區分裝置實例標識碼與硬體標識碼或相容標識碼。 如果需要讓移除程式生效,此命令也包含 重新啟動系統的 /r 參數。

警告

使用模式移除任何裝置之前,請先判斷哪些裝置受到影響。 若要這樣做,請在顯示命令中使用模式,例如 devcon status @usb\*devcon hwids @usb\*

devcon /r remove @usb\*

為了回應,DevCon 會顯示其移除之裝置的裝置實例標識碼。

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 類別,然後在硬體識別碼或相容識別碼包含 「ndiswan」 的類別中指定裝置,以精簡搜尋。此命令也包含 /r 參數,如果需要重新啟動,則會重新啟動系統,讓移除程式生效。

警告 使用模式移除任何裝置之前,請先判斷哪些裝置會受到影響。 若要這樣做,請在顯示命令中使用模式,例如 devcon status =net *ndiswandevcon hwids =net *ndiswan*

devcon /r remove =net *ndiswan*

為了回應,DevCon 會顯示其移除之裝置的裝置實例標識碼。

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 的裝置實例識別碼。 字元 () @ 會將字串識別為裝置實例標識符。 單引號字元 (') 要求常值搜尋,可防止 DevCon 將標識碼中的星號解譯為通配符。

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

為了回應,DevCon 會顯示裝置的裝置實例標識碼,並報告結果。

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

範例 39:重新啟動本機計算機

下列命令會使用 DevCon Reboot 作業來重新啟動本機電腦上的作業系統,並將重新啟動與硬體安裝產生關聯。 不同於 /r 參數, DevCon Reboot 作業不會相依於另一個作業的傳回碼。

您可以將此指令包含在需要重新啟動系統的文稿和批次處理檔中。

devcon reboot

為了回應,DevCon 會顯示一則訊息,指出它正在重新啟動計算機, (重新啟動本機計算機) 。

DevCon 會使用標準的 ExitWindowsEx 函 式重新啟動。 如果使用者在計算機上開啟檔案,或程式不會關閉,除非使用者響應系統提示關閉檔案或結束程式,否則系統不會重新啟動。

範例 40:將硬體標識碼指派給舊版裝置

下列命令會使用 DevCon SetHwID 作業,將硬體標識碼、嗶聲指派給舊版 Beep 裝置。

此命令會使用裝置的裝置實例標識碼 ROOT\LEGACY_BEEP\0000,因為擷取舊版裝置沒有硬體標識碼或相容的標識碼。 它會使用字元 (@) 來表示字串是裝置實例標識碼。

此命令不會使用任何符號參數來定位標識碼。 根據預設,DevCon 會將新的硬體識別元新增至硬體標識碼清單的結尾。 在此情況下,因為裝置沒有其他硬體標識碼,所以放置並不相關。

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

為了回應,DevCon 會顯示一則訊息,指出其已新增至裝置的硬體標識符清單。 它也會顯示產生的硬體識別碼清單。 在此情況下,清單中只有一個硬體標識符。

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

範例 41:將硬體標識元新增至所有舊版裝置

下列命令會使用 DevCon SetHwID 作業,將硬體識別碼舊版新增至所有舊版裝置的硬體標識符清單。

此命令會 - 使用符號參數,將新的硬體識別元新增至裝置的硬體標識碼清單結尾,以防其中一個裝置已建立慣用的硬體識別符。 它也會使用裝置實例標識符模式 @ROOT\LEGACY\*來識別電腦上的舊版裝置,也就是裝置實例標識符開頭 ROOT\LEGACY*為的所有裝置。

devcon sethwid @ROOT\LEGACY* := -legacy

為了回應,DevCon 會顯示所有受影響裝置所產生的硬體標識碼清單。

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).

將相同的硬體識別碼指派給一組裝置之後,您可以使用其他 DevCon 作業,在單一命令中檢視和變更裝置。

例如,下列命令會顯示所有舊版裝置的狀態。

devcon status legacy

範例 42:從所有舊版裝置刪除硬體識別碼

下列命令會使用 DevCon SetHwID 作業,從所有舊 裝置的硬體識別碼清單中刪除硬體標識碼。

此命令會使用硬體標識碼 舊版來識別具有該硬體標識碼的所有裝置。 然後,它會使用 符號參數來刪除 舊版 硬體識別符。

devcon sethwid legacy := !legacy

為了回應,DevCon 會顯示所有受影響裝置所產生的硬體標識碼清單。

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:新增、刪除和取代硬體識別碼

下列範例系列示範如何使用 DevCon SetHwID 作業的不同功能。

此系列使用虛構裝置 DeviceX 搭配裝置實例標識碼 ROOT\DeviceX\0000。 使用 DevCon 之前,裝置具有下列硬體識別符清單:

Hw3 Hw4

下列命令會 + 使用 符號,將 Hw1Hw2 新增至 DeviceX 硬體識別碼清單的開頭。 因為 Hw2 已經出現在清單中,所以會移動,而不是新增。 命令會依裝置實例標識碼來識別裝置,如標識符前面的字元 (@) 所示。

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

為了回應,DevCon 會顯示裝置的新硬體標識符清單。 請注意, Hw1Hw2 會以指定的順序出現在清單的開頭。

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

此外,DevCon 會報告它修改了一個硬體標識符清單,也就是一部裝置的硬體標識符清單。

下列命令會使用 符號來刪除 Hw1 硬體識別碼。 然後它會列出硬體標識碼 Hw5,不含符號參數。 如果沒有符號參數,SetHwID 會將硬體識別元新增至裝置的硬體標識碼清單結尾。

此命令示範,不同於 DevCon SetHwID 作業的其他符號參數, 符號只適用於其前置詞的硬體識別符。

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

為了回應,DevCon 會顯示 DeviceX 產生的硬體標識碼清單。

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

下列命令會使用 = 參數,以單一硬體識別碼 DevX 取代 DeviceX 清單中的所有硬體識別碼。

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

為了回應,DevCon 會顯示 DeviceX 產生的硬體標識碼清單。

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

成功訊息指出 DevCon 修改了一個裝置的硬體識別碼。

範例 44:強制更新 HAL

下列範例示範如何使用DevCon來更新電腦上的HAL。 在此範例中,測試人員想要以多處理器 APCI APIC HAL 取代最適合電腦的單處理器 APCI APIC HAL,以供測試之用。

第一個命令會使用 DevCon SetHwID 作業,將HAL的硬體識別碼從 acpiapic_up變更為單處理器HA的硬體標識碼,變更為 acpiapic_mp多處理器HA的硬體標識碼。

您必須變更硬體識別碼,因為 HAL 的 INF 檔案同時包含單處理器和多處理器 HA 的驅動程式。 系統會根據裝置的硬體標識碼,從 INF 檔案中選取最適當的驅動程式。 如果您未變更硬體識別碼, DevCon Update 命令只會重新安裝單處理器 HAL 驅動程式。

在下列命令中,命令會依其實例標識碼 ROOT\ACPI_HAL\0000 識別 HAL,如標識符前面的字元所示 @ 。 此命令會 + 使用 字元來 acpiapic_mp HAL 清單中的第一個硬體識別碼。 然後,它會使用 字元,從 HAL 的識別碼清單中刪除 acpiapic_up 硬體識別碼。

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

為了回應,DevCon 會顯示下列 HAL 的新硬體識別符清單。

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.

若要從驅動程式存放區中移除一個適用於 Toaster 驅動程式的驅動程式套件,您必須使用驅動程式的 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 提供的驅動程式套件具有未指定的裝置類別, (Toaster) 名為 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.