Devcon.exe 驱动管理工具使用

示例1:查找所有硬件ID

由于DevCon操作使用ID和ID模式来标识设备,因此使用DevCon的常见第一步是为计算机上的设备创建硬件ID参考文件。

以下命令使用DevCon HwIDs操作,该操作返回ID和设备描述。它使用通配符(*)表示本地计算机上的所有设备。

devcon hwids *

由于输出很长且反复使用,因此请将输出保存在文本文件中以供参考。

以下命令使用通配符(*)表示计算机上的所有设备。它使用重定向字符(>)将命令输出保存在hwids.txt文件中。

devcon hwids * > hwids.txt

以下命令在远程计算机Server01上查找设备的硬件ID。它使用/ m参数指定远程计算机的名称。该命令将输出重定向到server01_hwids.txt文件,以供以后参考。

注意    除非用户在远程计算机上具有必需的权限,否则此命令将失败。要在远程计算机上运行DevCon命令,组策略设置必须允许即插即用服务在远程计算机上运行。在运行Windows Vista和Windows 7的计算机上,默认情况下,组策略禁用对服务的远程访问。在运行Windows Driver Kit(WDK)8.1和Windows Driver Kit(WDK)8的计算机上,远程访问不可用。

devcon /m:\\server01 hwids * > server01_hwids.txt

示例2:使用模式查找硬件ID

要查找特定设备的硬件ID,请输入硬件ID或模式,兼容的ID或模式,设备实例ID或模式或设备设置类的名称。

以下命令使用DevCon HwIDs操作和一种模式来查找计算机上软盘驱动器的硬件ID。(用户假定该模式出现在设备标识符之一中。)该命令使用通配符(*)表示任何ID中可能在单词“ floppy”之前或之后的所有字符。

devcon hwids *floppy*

作为响应,DevCon显示计算机上软盘驱动器的设备实例ID,硬件ID和兼容ID。您可以在后续的DevCon命令中使用这些ID。

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.

在这种情况下,短语“软盘”出现在计算机上仅一台设备的硬件ID或兼容ID中。如果它出现在多个设备的ID中,则其ID中带有“软盘”的所有设备都将出现在输出中。

示例3:使用类查找硬件ID

以下命令使用DevCon HwIDs操作和设备设置类在“端口”设备设置类中查找所有设备的硬件ID。类名前面的等号(=)表示它是一个类,而不是ID。

devcon hwids =ports

作为响应,DevCon将在“端口”设置类中显示三个设备的硬件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

示例5:列出远程计算机上的类

以下命令使用DevCon Classes操作列出远程计算机Server01上的设备设置类:

devcon /m:\\server01 classes

由于输出很长且反复使用,因此请将输出保存在文本文件中以供参考。

以下命令使用重定向字符(>)将命令输出保存在server01_classes.txt文件中。

devcon /m:\\server01 classes > server01_classes.txt

示例6:在设备设置类中列出设备

以下命令使用DevCon ListClass操作来列出Net(网络适配器的设备设置类)中的设备。

devcon listclass net

作为响应,DevCon在Net setup类中显示设备实例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 setup类中设备的硬件ID。以下命令使用DevCon HwIDs操作来列出Net setup类中的设备。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操作列出远程计算机Server01上DiskDrive,CDROM和TapeDrive类中的设备。

devcon /m:\\server01 listclass diskdrive cdrom tapedrive

作为响应,DevCon在远程计算机上显示这些类中的设备。

Listing 1 device(s) for setup class "DiskDrive" (Disk drives) on \\server01.
IDE\DISKWDC_WD204BA_____________________________16.13M16\4457572D414D3730323136333938203120202020: WDC WD204BA
Listing 1 device(s) for setup class "CDROM" (DVD/CD-ROM drives) on \\server01.
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) on \\server01.

示例8:列出所有驱动程序文件

以下命令使用DevCon DriverFiles操作列出系统上设备使用的驱动程序的文件名。该命令使用通配符(*)指示系统上的所有设备。由于输出内容很大,因此该命令使用重定向字符(>)将输出重定向到参考文件driverfiles.txt。

devcon driverfiles * > driverfiles.txt

示例9:列出特定设备的驱动程序文件

以下命令使用DevCon DriverFiles操作来搜索本地计算机上的鼠标设备使用的设备驱动程序。它通过其硬件ID之一HID \ Vid_045e&Pid_0039&Rev_0121来标识设备。硬件ID包含引号(),因此用引号引起来

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:按硬件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资源操作显示Hdc设备设置类中分配给设备的资源。此类包括IDE控制器。等号(=)放在“ hdc”之前,表示它是一个类而不是ID。

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资源操作列出在远程计算机Server01上分配给系统计时器的资源。该命令使用系统计时器的硬件ID ACPI \ PNP0100指定设备。

devcon /m:\\Server01 resources *PNP0100

作为响应,DevCon显示Server01系统计时器的资源。

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

以下命令在DevCon resources命令中使用远程系统计时器的设备实例ID。at字符(@)表示该字符串是设备实例ID,而不是硬件ID或兼容ID。

devcon /m:\\Server01 resources @ACPI\PNP0100\4&b4063f4&0

示例14:显示存储设备的驱动程序堆栈

以下命令使用DevCon Stack操作在Volume setup类中搜索设备,并显示这些设备的预期驱动程序堆栈。等号(=)表示该字符串是一个类名。

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:查找设备的设置类

所述开发者大会堆栈操作返回除了上部和下部过滤器驱动程序的设置类的设备的。以下命令通过找到打印机端口接口的设备实例ID,然后使用设备实例ID来查找其设置类别,来找到打印机端口接口的设置类别。

以下命令使用DevCon HwIDs操作通过使用“ LPT”(打印机端口硬件ID中的短语)查找打印机端口接口的设备实例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操作来显示远程计算机Server01上的微型端口驱动程序设备的预期堆栈。它在Net setup类中搜索其硬件ID或兼容ID中具有“微型端口”的设备。

请注意,此命令首先将搜索限制为Net setup类,然后找到“ miniport”字符串。除了Net setup类中的设备,它找不到其他设备。

devcon /m:\\server01 stack =net *miniport*

作为响应,DevCon在Server01上显示微型端口驱动程序的预期堆栈。

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 on \\Server01.

示例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操作显示远程计算机Server01上与存储相关的特定设备的状态。它搜索以下设备:

  • 磁盘驱动器,GenDisk

  • CD-ROM驱动器,GenCdRom

  • 软盘驱动器,FDC \ GENERIC_FLOPPY_DRIVE

  • 卷,存储\卷

  • 逻辑磁盘管理器,ROOT \ DMIO

  • 卷管理器,ROOT \ FTDISK

  • 软盘控制器ACPI \ PNP0700

在命令中,每个ID均由空格分隔。请注意,GenDisk和GenCdRom是兼容的ID,而其他ID是硬件ID。

devcon /m:\\server01 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 on \\Server01.

示例20:按硬件ID模式查找设备

以下命令使用DevCon Find操作在远程计算机Server01上搜索鼠标设备。具体地说,该命令在Server01计算机中搜索其硬件ID或兼容ID包含“ mou”的设备。

devcon /m:\\Server01 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模式以at字符(@开头以指示设备实例ID,然后以通配符(*开头以查找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 setup类中查找计算机上的所有设备。等号(=)表示Net是设置类,而不是ID。

devcon findall =net

作为响应,DevCon在网络设置类中列出了以下七个设备。前六个是标准的微型端口驱动程序设备。第七台设备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.

以下命令将比较开发者大会寻找开发者大会的FindAll通过运行一个业务开发者大会查找具有相同的参数前面的命令开发者大会的FindAll命令。

devcon find =net

作为响应,DevCon在网络安装程序类中列出了以下六个设备。

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安装程序类的上级筛选器驱动程序列表中。

此命令使用后置(+)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运算符(-)将MyFilter.sys添加到Disklog.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使用后置运算符(+)在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文件。)

第二个子命令使用后置运算符(+)将新的筛选器驱动程序放置在已删除驱动程序占据的位置。因为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类的筛选器驱动程序。它还显示命令的预期结果。

表格1
之前

零件经理

零件经理

MyNewFilter

磁盘日志

磁盘日志

MyNewFilter

第一个子命令使用delete运算符(!)从列表中删除Disklog。第二个子命令使用开始运算符(=)将虚拟光标移回起始位置,然后使用定位运算符(@)将光标放置在PartMgr驱动程序上。start操作符是必需的,因为虚拟光标仅在列表中向前移动。最后一个子命令使用后置运算符(+)在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 setup类来启用计算机上的所有打印机设备该命令包含/ 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禁用”操作来禁用本地计算机上的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禁用”操作来禁用本地计算机上的USB设备。该命令通过设备实例ID来标识设备,如每个ID前面的at字符(@)所示。每个设备实例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操作的非交互式版本)来更新驱动程序。所述开发者大会UpdateNI操作是相同的开发者大会更新不同之处在于它抑制需要响应的所有用户提示,并假定默认响应于该提示操作。

以下命令使用DevCon UpdateNI操作来安装测试驱动程序。

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

在这种情况下,DevCon不会显示“ 硬件安装”警告。而是假定默认响应为Stop Installation结果,DevCon无法更新驱动程序并显示失败消息。

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

示例33:安装设备

以下命令使用DevCon Install操作在本地计算机上安装键盘设备。该命令包括设备INF文件的完整路径(keyboard.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 * ndiswan \ *或devcon 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.

您也可以在远程计算机上使用DevCon Rescan命令。通过在命令上添加/ m参数,以下命令可在远程计算机Server01上运行DevCon Rescan操作

devcon /m:\\server01 rescan

示例38:重新启动设备

以下命令使用DevCon Restart操作来重新启动本地计算机上的回送适配器。该命令将搜索限制为Net setup类,并在该类中指定回送适配器的设备实例ID ROOT \ * MSLOOP \ 0000at字符(@)将字符串标识为设备实例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 beep分配给旧的beep设备。

该命令使用设备的设备实例ID,即ROOT \ LEGACY_BEEP \ 0000,因为嘟嘟的旧设备没有硬件ID或兼容的ID。它使用at字符(@)表示该字符串是设备实例ID。

该命令不使用任何符号参数来定位ID。默认情况下,DevCon将新的硬件ID添加到硬件ID列表的末尾。在这种情况下,由于设备没有其他硬件ID,因此放置无关紧要。

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

作为响应,DevCon显示一条消息,指示已将蜂鸣声添加到设备的硬件ID列表中。它还显示结果硬件ID列表。在这种情况下,列表中只有一个硬件ID。

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

示例41:向远程计算机上的所有旧设备添加硬件ID

以下命令使用DevCon SetHwID操作将旧服务器的硬件ID添加到Server1远程计算机上所有旧设备的硬件ID列表中。

该命令使用-符号参数的新的硬件ID添加到该设备的硬件ID列表的末尾,如果优选的硬件ID具有用于设备中的一个被创建。它使用/ m参数指定远程计算机。它还使用设备实例ID模式@ROOT \\ LEGACY \ 来标识计算机上的旧设备,即,所有设备实例ID以** ROOT \ LEGACY * 开头的设备

devcon /m:\\Server1 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操作在单个命令中查看和更改设备。

例如,以下命令显示所有旧式设备的状态。

devcon status legacy

示例42:从远程计算机上的所有旧设备中删除硬件ID

以下命令使用DevCon SetHwID操作从Server1远程计算机上所有旧版设备的硬件ID列表中删除旧版的硬件ID。

该命令使用/ m参数指定远程计算机。它使用硬件ID legacy来标识具有该硬件ID的所有设备。然后,它使用用于删除旧版硬件ID的symbol参数

devcon /m:\\Server1 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

以下命令使用+符号将Hw1Hw2添加到DeviceX的硬件ID列表的开头。由于Hw2已经出现在列表中,因此将其移动而不是添加。该命令通过设备实例ID来标识设备,如ID 前面的at字符(@)所示。

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

作为响应,DevCon显示设备的新硬件ID列表。请注意,Hw1Hw2以指定顺序出现在列表的开头。

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

此外,DevCon报告它修改了一个硬件ID列表,即一个设备的硬件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替换为单个硬件ID DevX

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

作为响应,DevCon将显示生成的DeviceX硬件ID列表。

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

成功消息表示DevCon已修改一台设备的硬件ID。

示例44:强制更新HAL

以下示例显示了如何使用DevCon更新计算机上的HAL。在此示例中,测试人员希望将多处理器APCI APIC HAL替换为最适合计算机的单处理器APCI APIC HAL,以进行测试。

第一条命令使用DevCon SetHwID操作将HAL的硬件ID从acpiapic_up(单处理器HAL 的硬件ID)更改acpiapic_mp(多处理器HAL的硬件ID)。

您必须更改硬件ID,因为HAL的INF文件包含单处理器和多处理器HAL的驱动程序。系统根据设备的硬件ID从INF文件中选择最合适的驱动程序。如果您不更改硬件ID,则DevCon Update命令将仅重新安装单处理器HAL驱动程序。

在下面的命令,该命令标识的HAL通过它的实例ID,ROOT \ ACPI_HAL \ 0000由所指示的,@的ID前面的字符。该命令使用+字符使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.
posted @ 2020-03-05 22:49  dozeoo  阅读(1897)  评论(0编辑  收藏  举报