Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
This article provides examples to demonstrate various Device Console (DevCon.exe) commands, including hardware identifiers (IDs), classes, driver files, installing and scanning, and more.
Important
Administrators are recommended to use the PnPUtil command line tool rather than the Device Console sample. A ferramenta PnPUtil vem com todas as versões do Windows e faz uso das APIs mais confiáveis e seguras disponíveis. Para obter mais informações sobre como usar o PnPutil em vez do Console do dispositivo, consulte Substituindo o console do dispositivo.
Example categories
The article provides examples for the following categories of Device Console commands, or DevCon for short.
Example details
Os exemplos completos de DevCon são fornecidos nas seções a seguir.
Exemplo 1: Localizar todos os IDs de hardware
As operações DevCon usam IDs e padrões de ID para identificar dispositivos. Como resultado, uma primeira etapa comum para usar o DevCon é criar um arquivo de referência de ID de hardware para dispositivos no computador.
The following command uses the DevCon HwIDs operation, which returns the IDs and the device description. O comando usa o caractere curinga asterisco (*) para representar todos os dispositivos no computador local.
devcon hwids *
Como a saída é longa e usada repetidamente, salve a saída em um arquivo de texto para referência.
O comando a seguir estende o comando anterior com o caractere de redirecionamento (>). The redirection saves the command output in the specified file, hwids.txt.
devcon hwids * > hwids.txt
Exemplo 2: Localizar IDs de hardware usando um padrão
Para localizar os IDs de hardware de um dispositivo específico, insira um dos seguintes valores com o comando:
- ID ou padrão de hardware
- ID ou padrão compatível
- ID ou padrão da instância do dispositivo
- Nome da classe de configuração do dispositivo
The following command uses the DevCon HwIDs operation and a pattern to find the hardware IDs of the floppy disk drive on the computer. (O usuário assume que o padrão aparece em um dos IDs do dispositivo.) O comando usa o caractere curinga (*) para representar todos os caracteres que podem preceder ou seguir a palavra floppy em qualquer uma das IDs.
devcon hwids *floppy*
Em resposta, o DevCon exibe o ID da instância do dispositivo, o ID do hardware e o ID compatível da unidade de disquete no computador. Você pode usar essas IDs em comandos DevCon subsequentes.
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.
Neste exemplo, a frase "disquete" ocorre no ID de hardware ou ID compatível de apenas um dispositivo no computador. Se a frase ocorrer no ID de mais de um dispositivo, todos os dispositivos com a frase "disquete" em seus IDs aparecerão na saída.
Exemplo 3: Localizar IDs de hardware usando uma classe
The following command uses the DevCon HwIDs operation and a device setup class to find the hardware IDs of all devices in the Ports device setup class. O símbolo de igual (=) que precede o nome da classe indica que o valor especificado é uma classe e não uma ID.
devcon hwids =ports
Em resposta, o DevCon exibe as IDs de hardware e as IDs compatíveis dos três dispositivos na classe de configuração Portas:
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.
Exemplo 4: Listar classes no computador local
Como as operações DevCon podem usar a classe de configuração de dispositivo para identificar dispositivos, é útil criar um arquivo de referência das classes de configuração de dispositivos no computador.
The following command uses the DevCon Classes operation, which returns a list and description of all classes on the computer.
devcon classes
Como a saída é longa e usada repetidamente, salve a saída em um arquivo de texto para referência.
O comando a seguir exibe todas as classes de dispositivo no computador. It uses the redirection character (>) to save the command output in the specified file, classes.txt.
devcon classes > classes.txt
Exemplo 6: Listar os dispositivos em uma classe de configuração de dispositivo
The following command uses the DevCon ListClass operation to list the devices in Net, the device setup class for network adapters.
devcon listclass net
Em resposta, o DevCon exibe o ID da instância do dispositivo e a descrição de cada dispositivo na classe de configuração 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
Embora a resposta do comando seja interessante, ela não fornece as IDs de hardware dos dispositivos na classe de configuração da rede.
The following command uses the DevCon HwIDs operation to list the devices in the Net setup class. In a DevCon HwIDs command, the equals symbol (=) precedes the value to indicate that the value is a class and not an ID.
devcon hwids =net
A exibição resultante lista os dispositivos na classe Net e inclui o ID da instância do dispositivo, IDs de hardware e IDs compatíveis de dispositivos na classe.
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.
Exemplo 7: Listar os dispositivos em várias classes
The following command uses the DevCon ListClass operation to list the devices in the DiskDrive, CDROM, and TapeDrive classes.
devcon listclass diskdrive cdrom tapedrive
Em resposta, o DevCon exibe os dispositivos nessas classes:
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).
Exemplo 8: Listar todos os arquivos de driver
The following command uses the DevCon DriverFiles operation to list the file names of drivers that devices on the system use. O comando usa o caractere curinga (*) para representar todos os dispositivos no sistema. Because the output is extensive, it uses the redirection character (>) to save the command output in the specified file, driverfiles.txt.
devcon driverfiles * > driverfiles.txt
Exemplo 9: Listar os arquivos de driver de um dispositivo específico
The following command uses the DevCon DriverFiles operation to search for the device driver used by the mouse device on the local computer. O comando identifica o dispositivo por um de seus IDs de hardware, HID\Vid_045e&Pid_0039&Rev_0121. O ID do hardware está entre aspas (" ") porque inclui o símbolo E comercial (&).
devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"
Em resposta, o DevCon exibe os dois drivers de dispositivo que suportam o dispositivo de mouse:
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.
Exemplo 10: Listar pacotes de driver por padrão de ID de hardware
The following command uses the DevCon DriverNodes command and an ID pattern to list the driver nodes of software-enumerated devices. Os padrões são úteis para encontrar informações sobre dispositivos semelhantes que podem não estar na mesma classe de configuração.
The following command uses the ID pattern sw* to specify devices with hardware IDs or compatible IDs that begin with "sw" for software-enumerated devices.
devcon drivernodes sw*
Em resposta, o DevCon exibe os nós de driver de dispositivos enumerados por software no sistema:
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.
Exemplo 11: Listar pacotes de driver por padrão de ID de instância de dispositivo
The following command uses the DevCon DriverNodes operation to list the driver packages of all devices with device instance IDs that begin with ROOT\MEDIA for devices in the Enum\Root\Media registry subkey. The command uses the at symbol (@) to indicate that the phrase is in the device instance ID.
devcon drivernodes @ROOT\MEDIA*
Em resposta, o DevCon exibe os nós de driver de dispositivos com um ID de instância de dispositivo que começa com 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.
Exemplo 12: Listar recursos de uma classe de dispositivos
The following command uses the DevCon Resources operation to display the resources allocated to devices in the Hdc device setup class. Esta classe inclui controladores IDE. A sintaxe precede o nome hdc da classe com o símbolo de igual (=) para indicar que o valor especificado é uma classe e não uma ID.
devcon resources =hdc
Em resposta, o DevCon lista os recursos alocados para controladores IDE no computador local:
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.
Exemplo 13: Listar recursos do dispositivo por ID
The following command uses the DevCon Resources operation to list the resources allocated to the system timer. O comando usa o ID de hardware do temporizador do sistema, ACPI\PNP0100, para especificar o dispositivo.
devcon resources *PNP0100
Em resposta, o DevCon exibe os recursos do temporizador do sistema:
ROOT\*PNP0100\PNPBIOS_8
Name: System timer
Device has the following resources reserved:
IO : 0040-005f
IRQ : 0
1 matching device(s) found.
O comando a seguir usa a ID da instância do dispositivo do temporizador do sistema no comando DevCon resources . The command uses the at symbol (@) to indicate that the string is a device instance ID and not a hardware ID or compatible ID.
devcon resources "@ACPI\PNP0100\4&b4063f4&0"
Exemplo 14: Mostrar o stack de drivers para dispositivos de armazenamento
The following command uses the DevCon Stack operation to search for devices in the Volume setup class and display the expected driver stack for those devices. O símbolo de igual (=) precede a cadeia de caracteres para indicar que o valor é uma classe e não um ID.
devcon stack =Volume
Em resposta, o DevCon exibe a pilha esperada para os dispositivos na classe Volume. Os dados retornados incluem as seguintes informações:
- ID da instância do dispositivo e descrição de cada dispositivo
- GUID e nome da classe de configuração do dispositivo
- Nomes dos drivers de filtro superior e inferior
- Serviços de controlo (se for caso disso)
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.
Exemplo 15: Localizar a classe de configuração de um dispositivo
The DevCon Stack operation returns the setup class of a device in addition to the upper and lower filter drivers. Os comandos a seguir localizam a classe de configuração da interface da porta da impressora localizando seu ID de instância de dispositivo e, em seguida, usando o ID de instância de dispositivo para localizar sua classe de configuração.
The following command uses the DevCon HwIDs operation to find the device instance ID of the printer port interface. Ele pesquisa a frase "LPT" dentro do ID de hardware da porta da impressora:
devcon hwids *lpt*
Em resposta, o DevCon retorna o ID da instância do dispositivo (exibido em negrito) e o ID de hardware da interface da porta da impressora:
LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1
Name: Printer Port Logical Interface
Hardware ID's:
LPTENUM\MicrosoftRawPort958A
MicrosoftRawPort958A
1 matching device(s) found.
The next command uses the DevCon Stack operation to find the device setup class of the device represented by the device instance ID. The command uses the at symbol (@) to identify the ID as a device instance ID. O ID está entre aspas (" ") porque inclui o símbolo E comercial (&).
devcon stack "@LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1"
Em resposta, o DevCon apresenta a pilha de controladores para a interface da porta da impressora, incluindo a classe. O visor revela que a porta da impressora está na classe 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.
Exemplo 16: Exibir a pilha para dispositivos relacionados
The following command uses the DevCon Stack operation to display the expected stack for miniport driver devices. Ele procura dispositivos na classe de configuração Net que têm "miniport" em seu ID de hardware ou ID compatível.
Este comando primeiro limita a pesquisa à classe de configuração Net e, em seguida, localiza a cadeia de caracteres "miniport". Ele não encontra dispositivos além dos itens na classe de configuração Net.
devcon stack =net *miniport*
Em resposta, o DevCon exibe a pilha esperada para drivers de miniporta:
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.
Exemplo 17: Exibir o status de todos os dispositivos
The following command uses the DevCon Status operation to find the status of all devices on the local computer. It then saves the status in the status.txt file for logging or later review. O comando usa o caractere curinga (*) para representar todos os dispositivos. It uses the redirection character (>) to save the command output in the specified file, status.txt.
devcon status * > status.txt
Exemplo 18: Exibir o status de um dispositivo por ID de instância de dispositivo
A maneira mais confiável de encontrar o status de um determinado dispositivo é usar o ID da instância do dispositivo.
The following command uses the device instance ID of the I/O controller on the local computer in a DevCon Status command. O comando inclui o ID da instância do dispositivo, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. The command uses the at symbol (@) to identify the string as a device instance ID. O ID está entre aspas (" ") porque inclui o símbolo E comercial (&).
devcon status "@PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00"
Em resposta, o DevCon exibe o status do controlador de E/S:
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.
Exemplo 19: Exibir o status de dispositivos relacionados
The following command uses the DevCon Status operation to display the status of particular storage-related devices. Procura os seguintes dispositivos:
- Unidade de disco,
GenDisk - CD-ROM unidade,
GenCdRom - Unidade de disquete,
FDC\GENERIC_FLOPPY_DRIVE - Volumes,
STORAGE\Volume - Gerenciador de disco lógico,
ROOT\DMIO - Gestor de volumes,
ROOT\FTDISK - Controlador de disquete,
ACPI\PNP0700
No comando, cada ID é separado dos outros por espaços. Observe que GenDisk e GenCdRom são IDs compatíveis, enquanto os outros IDs são IDs de hardware.
devcon status GenDisk GenCdRom FDC\GENERIC_FLOPPY_DRIVE STORAGE\Volume ROOT\DMIO ROOT\FTDISK ACPI\PNP0700
Em resposta, o DevCon exibe o status de cada dispositivo:
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.
Exemplo 20: Localizar dispositivos por padrão de ID de hardware
The following command uses the DevCon Find operation to search for mouse devices. Especificamente, o comando procura no computador dispositivos com IDs de hardware ou IDs compatíveis que incluam a frase "mou":
devcon find *mou*
Em resposta, a DevCon descobre dois dispositivos de mouse:
ROOT\*PNP0F03\1_0_21_0_31_0 : Microsoft PS/2 Mouse
ROOT\RDP_MOU\0000 : Terminal Server Mouse Driver
Como todas as operações de exibição do DevCon também encontram IDs de hardware, você pode usar qualquer operação de exibição para pesquisar IDs de hardware. Selecione a operação com base no conteúdo que você precisa na saída. Por exemplo, para localizar os drivers de dispositivo para dispositivos relacionados ao mouse em um computador local, envie o seguinte comando:
devcon driverfiles *mou*
Em resposta, a DevCon encontra os dispositivos e lista seus drivers:
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.
Exemplo 21: Localizar dispositivos por ID ou classe de instância de dispositivo
The following commands use the DevCon Find operation to display all legacy devices on the local computer. Como os dispositivos herdados não têm uma ID de hardware, você deve procurá-los pelo ID da instância do dispositivo (caminho do Registro) ROOT\LEGACYou pela classe LegacyDriverde configuração .
O primeiro comando localiza controladores legados por um padrão de ID de instância de dispositivo. The at symbol (@) precedes the ID pattern to indicate that the value is a device instance ID. The value is followed by the wildcard character (*) to instruct the command to find all devices in the specified ID, the ROOT\Legacy subkey:
devcon find @root\legacy*
O segundo comando localiza dispositivos herdados pesquisando todos os dispositivos na classe LegacyDriver:
devcon find =legacydriver
Ambos os comandos produzem a mesma saída, neste caso, encontrando os mesmos 27 dispositivos legados:
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.
Exemplo 22: Localizar (e localizar todos) dispositivos em uma classe de configuração
The following command uses the DevCon FindAll operation to find all devices on the computer in the Net setup class. O símbolo de igual (=) precede o nome da classe "Net" para indicar que o valor especificado é uma classe e não um ID.
devcon findall =net
Em resposta, o DevCon lista os seguintes sete dispositivos na classe de configuração Net. Os seis primeiros são dispositivos de driver de miniporta padrão. O sétimo dispositivo, o adaptador assíncrono RAS, é um dispositivo enumerado por software (SW\*) instalado apenas conforme necessário.
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.
The following command compares the output from the DevCon Find and DevCon FindAll operations by running a DevCon Find command with the same parameters as the previous DevCon FindAll command:
devcon find =net
Em resposta, o DevCon lista os seguintes seis dispositivos na classe de configuração 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.
Predictably, the DevCon Find command, which returns only currently installed devices, doesn't list the software-enumerated device because the device isn't installed.
Exemplo 23: Exibir os drivers de filtro para uma classe de configuração
The following command uses the DevCon ClassFilter operation to display the upper filter drivers for the DiskDrive setup class. Como esse comando não inclui operadores de filtro de classe, o DevCon exibe os drivers de filtro para a classe, mas não os altera.
devcon classfilter DiskDrive upper
Em resposta, o DevCon exibe os drivers de filtro superiores para a classe DiskDrive e confirma que os drivers de filtro não foram alterados. In this case, the display shows that devices in the DiskDrive setup class use the PartMgr.sys upper filter driver:
Class filters unchanged.
PartMgr
Exemplo 24: Adicionar um driver de filtro a uma classe de configuração
The following command uses the DevCon ClassFilter operation to add a fictitious filter, Disklog.sys, to the list of upper filter drivers for the DiskDrive setup class.
This command uses the add-after (+, the plus symbol) ClassFilter operator to load the Disklog driver after the PartMgr driver so it receives data that PartMgr.sys already processed.
Quando o comando é iniciado, o cursor virtual é posicionado antes do primeiro driver de filtro. Como ele não está posicionado em um driver específico, o DevCon adiciona o driver Disklog ao final da lista de drivers de filtro.
O comando também usa o /r parâmetro, que reinicia o sistema conforme necessário para tornar efetiva a alteração do filtro de classe.
devcon /r classfilter DiskDrive upper +Disklog
Em resposta, o DevCon exibe os drivers de filtro superiores atuais para a classe DiskDrive:
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
Disklog
Se você digitar incorretamente o nome do driver ou tentar adicionar um driver que não esteja instalado no sistema, o comando falhará. O DevCon não adiciona um driver a menos que o driver esteja registrado como um serviço. That is, DevCon only adds the driver if it has a subkey in the Services registry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services subkey.
O comando a seguir testa esse recurso de salvaguarda. Ele tenta adicionar "Disklgg" (em vez de "Disklog") à lista de filtros superiores para a classe DiskDrive. A saída demonstra que o comando falha:
devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.
Exemplo 25: Inserir um driver de filtro na lista de classes
The following command uses the DevCon ClassFilter operation to add a fictitious filter driver, MyFilter.sys, to the list of upper filter drivers for the DiskDrive setup class. The command places MyFilter.sys between PartMgr.sys and Disklog.sys in the load order:
devcon /r classfilter DiskDrive upper @Disklog -MyFilter
A lista a seguir mostra os drivers de filtro para a classe DiskDrive antes que o comando seja enviado:
PartMgr
Disklog
The first subcommand, @Disklog, uses the positioning operator (@, the at symbol) to place the virtual cursor on the Disklog filter driver. The second subcommand, -MyFilter, uses the add-before operator (-, the minus symbol) to add MyFilter.sys before Disklog.sys.
O comando também usa o /r parâmetro, que reinicia o sistema conforme necessário para tornar efetiva a alteração do filtro de classe.
O operador de posicionamento é essencial neste exemplo. Antes de DevCon processar qualquer subcomando classfilter, o cursor virtual está no início da lista e não está posicionado em nenhum driver de filtro. Se você usar o operador add-before (+) quando o cursor não estiver posicionado em um driver, o DevCon adicionará o driver ao início da lista. Se você usar o operador add-after (-) quando o cursor não estiver posicionado em um driver, ele adicionará o driver ao final da lista.
Em resposta, o DevCon exibe os drivers de filtro superiores atuais para a classe DiskDrive:
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
MyFilter
Disklog
Você também pode usar o seguinte comando para adicionar o driver MyFilter e colocá-lo entre PartMgr e Disklog. Neste exemplo, o primeiro subcomando, @PartMgr, posiciona o cursor virtual no driver de filtro PartMgr. The second subcommand, +MyFilter, uses the add-after operator (+) to add MyFilter.sys after PartMgr:
devcon /r classfilter DiskDrive upper @PartMgr +MyFilter
Exemplo 26: Substituir um driver de filtro
The following command uses the DevCon ClassFilter operation to replace the original copy of MyFilter.sys with a new and improved version, MyNewFilter.sys, in the list of filter drivers for the DiskDrive setup class:
devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter
A lista a seguir mostra os drivers de filtro para a classe DiskDrive antes que o comando seja enviado:
PartMgr
MyFilter
Disklog
O primeiro subcomando usa o operador delete (!, o ponto de exclamação) para excluir MyFilter da lista de drivers de filtro superiores para a classe DiskDrive. (It doesn't affect the MyFilter.sys file in the C:\Windows\System32\Drivers directory location.)
O segundo subcomando usa o operador add-after (+) para colocar o novo driver de filtro na posição anteriormente ocupada pelo driver excluído. Como o operador delete deixa o cursor na posição ocupada pelo filtro excluído, os operadores add-before (-) e add-after (+) têm o mesmo efeito.
O comando também usa o /r parâmetro, que reinicia o sistema conforme necessário para tornar efetiva a alteração do filtro de classe.
Em resposta, o DevCon mostra a nova configuração de filtro de classe para a classe DiskDrive:
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
MyNewFilter
Disklog
Exemplo 27: Alterar a ordem dos drivers de filtro
The following command uses the DevCon ClassFilter operation to change the order of filter drivers for the DiskDrive setup class. Especificamente, ele inverte a ordem do segundo e terceiro controladores de filtro.
devcon /r classfilter DiskDrive upper !Disklog =@PartMgr +Disklog
A lista a seguir mostra os drivers de filtro para a classe DiskDrive antes que o comando seja enviado. Ele também mostra o resultado pretendido do comando.
| Before | After |
|---|---|
| PartMgr | PartMgr |
| MyNewFilter | Disklog |
| Disklog | MyNewFilter |
O primeiro subcomando usa o operador delete (!) para excluir o Disklog da lista. The second subcommand uses the start operator (=, the equals symbol) to move the virtual cursor back to the starting position and the positioning operator (@, the at symbol) to place the cursor on the PartMgr driver. O operador start é necessário porque o cursor virtual se move apenas para a frente através da lista. O subcomando final usa o operador add-after (+) para adicionar Disklog após PartMgr.
Em resposta, o DevCon mostra a nova configuração de filtro de classe para a classe DiskDrive:
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
Disklog
MyNewFilter
Exemplo 28: Ativar um dispositivo específico
The following command uses the DevCon Enable operation to enable a previously disabled programmable interrupt controller. O controlado é desativado e, em seguida, reativado para corrigir um problema do sistema. Como o ID de hardware do controlador neste exemplo inclui um asterisco (*PNP0000), o comando usa o caractere de aspas simples (') para direcionar o DevCon a localizar o ID de hardware exatamente como especificado no comando. Se o comando não usou o caractere de aspas (') neste caso, o DevCon interpretará o asterisco (*) no valor como um caractere curinga.
devcon enable '*PNP0000
Em resposta, o DevCon exibe o ID da instância do dispositivo e explica que você deve reiniciar o sistema para habilitar o dispositivo:
ACPI\PNP0000\4&B4063F4&0 : Enabled on reboot
Not all of 1 device(s) enabled, at least one requires reboot to complete the operation.
You can respond by rebooting the system manually, or by using the DevCon Reboot operation.
O comando a seguir adiciona o /r parâmetro ao comando anterior. O /r parâmetro reinicia o sistema conforme necessário para concluir uma operação.
devcon /r enable '*PNP0000
Em resposta, o DevCon habilita o dispositivo e, em seguida, reinicia o sistema para tornar a operação de ativação eficaz.
Quando o sistema for iniciado, use um comando DevCon status para confirmar se o dispositivo está habilitado:
devcon status '*PNP0000
ACPI\PNP0000\4&B4063F4&0
Name: Programmable interrupt controller
Driver is running.
Exemplo 29: Habilitar dispositivos por classe
The following command enables all printer devices on the computer by specifying the Printer setup class in a DevCon Enable command. O comando inclui o /r parâmetro, que reinicia o sistema conforme necessário para tornar a operação de ativação eficaz.
devcon /r enable =Printer
Em resposta, o DevCon exibe o ID da instância do dispositivo da impressora que encontrou na classe Printer e informa que a impressora está habilitada. Embora o comando inclua o /r parâmetro, o sistema não reinicia porque não é necessária uma reinicialização para habilitar a impressora.
LPTENUM\HEWLETT-PACKARDDESKJET_1120C\1&7530F08&0&LPT1.4 : Enabled
1 device(s) enabled.
Exemplo 30: Desativar dispositivos por um padrão de ID
The following command uses the DevCon Disable operation to disable the USB devices on the local computer. Ele identifica os dispositivos por um padrão de ID de hardware (USB*). Este padrão corresponde a qualquer dispositivo com um ID de hardware ou ID compatível que comece com "USB". O comando inclui o /r parâmetro, que reinicia o sistema conforme necessário para tornar a operação de desativação eficaz.
Note
Antes de usar um padrão de ID para desativar um dispositivo, determine quais dispositivos podem ser afetados. Use o padrão em um comando de exibição, como devcon status USB* ou devcon hwids USB*.
devcon /r disable USB*
Em resposta, o DevCon exibe os IDs de instância do dispositivo dos dispositivos USB e informa que eles estão desativados. Embora o comando inclua o /r parâmetro, o sistema não reinicializa porque uma reinicialização não é necessária para desativar os dispositivos.
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.
Exemplo 31: Desativar dispositivos por ID de instância de dispositivo
The following command uses the DevCon Disable operation to disable the USB devices on the local computer. The command uses the at symbol (@) to identify the devices by their device instance IDs. Cada ID de instância de dispositivo é separado dos outros por um espaço.
Quando o ID do dispositivo inclui o símbolo E comercial (&), o valor é colocado entre aspas (" "). O comando inclui o /r parâmetro, que reinicia o sistema conforme necessário para tornar a operação de desativação eficaz.
devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"
Em resposta, o DevCon exibe os IDs de instância do dispositivo dos dispositivos USB e informa que eles estão desativados. Embora o comando inclua o /r parâmetro, o sistema não reinicializa porque uma reinicialização não é necessária para desativar os dispositivos.
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.
Exemplo 32: Atualizar o driver para portas de comunicação
The following command uses the DevCon Update operation to replace the current device driver for communication ports on the system with a test driver specified in the test.inf file. O comando afeta apenas dispositivos cujo ID de hardware completo é *PNP0501 (incluindo o asterisco *).
Você pode usar esse comando para substituir drivers assinados no sistema por drivers alternativos para teste ou solução de problemas, ou para associar os dispositivos à versão mais recente dos mesmos drivers.
devcon update c:\windows\inf\test.inf *PNP0501
In response, DevCon displays a Hardware Installation warning explaining that the driver didn't pass Windows Logo testing. If you select the Continue Anyway option on the dialog, the installation continues.
Em seguida, o DevCon exibe a seguinte mensagem de sucesso:
Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
Drivers updated successfully.
You can also use the DevCon UpdateNI operation, the noninteractive version of the DevCon Update operation, to update drivers. The DevCon UpdateNI operation is identical to the DevCon Update operation except it suppresses all user prompts that require a response and assumes the default response to the prompt.
The following command uses the DevCon UpdateNI operation to install the test driver:
devcon updateni c:\windows\inf\test.inf *PNP0501
In this case, DevCon doesn't display the Hardware Installation warning. Instead, it assumes the default response, Stop Installation. Como resultado, o DevCon não pode atualizar os drivers e exibe uma mensagem de falha:
Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
devcon failed.
Exemplo 33: Instalar um dispositivo
The following command uses the DevCon Install operation to install a keyboard device on the local computer. The command includes the full path to the setup information (INF) file keyboard.inf for the device and a hardware ID *PNP030b:
devcon /r install c:\windows\inf\keyboard.inf *PNP030b
Em resposta, a DevCon informa que instalou o dispositivo. Ou seja, o DevCon cria um nó de dispositivo para o novo dispositivo e atualiza os arquivos de driver para o dispositivo.
Device node created. Install is complete when drivers files are updated...
Updating drivers for *PNPO30b from c:\windows\inf\keyboard.inf
Drivers updated successfully.
Exemplo 34: Instalar um dispositivo usando a instalação autônoma
O exemplo a seguir mostra como instalar o Microsoft Loopback Adapter durante uma instalação autônoma do Microsoft Windows XP.
To install this device during an unattended setup, begin by adding the following files to a floppy disk: devcon.exe and netloop.inf (C:\Windows\inf\netloop.inf).
Em seguida, adicione o seguinte comando DevCon na [GUIRunOnce] seção do arquivo de instalação autônoma:
a:\devcon /r install a:\Netloop.inf '*MSLOOP
Este comando identifica o adaptador de loopback usando sua ID de hardware, *MSLOOP. O caractere de aspas simples (') que precede o valor \*MSLOOP informa o DevCon para interpretar a cadeia de caracteres literalmente. Como resultado, o DevCon interpreta o asterisco (*) como parte do ID de hardware e não como um caractere curinga.
The command also specifies that DevCon use the Netloop.inf file (on the floppy disk) in the installation. O /r parâmetro reinicia o computador conforme necessário para concluir a instalação.
Finalmente, adicione definições de configuração de rede ao arquivo de instalação autônoma e execute a instalação autônoma.
Exemplo 35: Remover dispositivos pelo padrão do ID de instância do dispositivo
The following command uses the DevCon Remove operation to remove all USB devices from the computer. Ele identifica os dispositivos por um padrão de ID de instância de dispositivo que corresponde a qualquer ID de instância de dispositivo (caminho do Registro) que começa com a cadeia de caracteres "USB". The command uses the at symbol (@) to distinguish the device instance ID from a hardware ID or compatible ID. O comando também inclui o /r parâmetro que reinicia o sistema conforme necessário para tornar a remoção eficaz.
Warning
Antes de usar um padrão de ID para remover um dispositivo, determine quais dispositivos podem ser afetados. Use o padrão em um comando de exibição, como devcon status @usb\* ou devcon hwids @usb\*.
devcon /r remove @usb\*
Em resposta, o DevCon exibe o ID da instância do dispositivo dos dispositivos removidos:
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.
Exemplo 36: Remover um dispositivo de rede específico
The following command uses the DevCon Remove operation to uninstall the NDISWAN miniport driver from the local computer. O comando especifica a classe Net e, em seguida, refina a pesquisa especificando dispositivos na classe cujo ID de hardware ou ID compatível incluem "ndiswan". O comando também inclui o /r parâmetro, que reinicia o sistema conforme necessário para tornar a remoção eficaz.
Warning
Antes de usar um padrão de ID para remover um dispositivo, determine quais dispositivos podem ser afetados. Use o padrão em um comando de exibição, como devcon status =net *ndiswan ou devcon hwids =net *ndiswan*.
devcon /r remove =net *ndiswan*
Em resposta, o DevCon exibe o ID da instância do dispositivo removido:
ROOT\MS_NDISWANIP\0000 : Removed 1 device(s) removed.
Exemplo 37: Verificar o computador em busca de novos dispositivos
The following command uses the DevCon Rescan operation to scan the local computer for new devices.
devcon rescan
Em resposta, a DevCon relata que examinou o sistema, mas não encontrou novos dispositivos:
Scanning for new hardware.
Scanning completed.
Exemplo 38: Reiniciar um dispositivo
The following command uses the DevCon Restart operation to restart the loopback adapter on the local computer. O comando limita a pesquisa à classe Net setup e, dentro dessa classe, especifica o ID da instância do dispositivo do adaptador de loopback, @'ROOT\*MSLOOP\0000.
The at symbol (@) identifies the string value as a device instance ID. O caractere de aspas simples (') informa o DevCon para interpretar a cadeia de caracteres literalmente. Como resultado, o DevCon interpreta o asterisco (*) como parte da ID e não como um caractere curinga.
devcon restart =net @'ROOT\*MSLOOP\0000
Em resposta, o DevCon exibe o ID da instância do dispositivo e relata o resultado:
ROOT\*MSLOOP\0000 : Restarted
1 device(s) restarted.
Exemplo 39: Reinicie o computador local
The following command uses the DevCon Reboot operation to reboot the operating system on the local computer and to associate the reboot with a hardware installation. Unlike the /r parameter, the DevCon Reboot operation doesn't depend on the return code from another operation.
Você pode incluir esse comando em scripts e arquivos em lote que exigem a reinicialização do sistema.
devcon reboot
Em resposta, o DevCon exibe uma mensagem indicando que está reiniciando o computador (reinicializando a máquina local).
DevCon uses the standard ExitWindowsEx function to reboot. Se o usuário tiver arquivos abertos no computador ou um programa não fechar, o sistema não será reinicializado. Ele aguarda até que o usuário responda aos prompts do sistema para fechar os arquivos ou terminar o processo.
Exemplo 40: Atribuir um ID de hardware a um dispositivo herdado
The following command uses the DevCon SetHwID operation to assign the hardware ID beep to the legacy beep device.
O comando usa o ID da instância do dispositivo ROOT\LEGACY_BEEP\0000 porque o dispositivo herdado de bipe não tem IDs de hardware ou IDs compatíveis. The command uses the at symbol (@) to indicate that the string is a device instance ID.
O comando não usa nenhum parâmetro de símbolo para posicionar o ID. Por padrão, o DevCon adiciona novas IDs de hardware ao final de uma lista de IDs de hardware. Nesse caso, como o dispositivo não tem outros IDs de hardware, o posicionamento do ID é irrelevante.
devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep
Em resposta, o DevCon exibe uma mensagem indicando que foi adicionado beep à lista de ID de hardware do dispositivo. Ele também exibe a lista de ID de hardware resultante. Neste caso, apenas um ID de hardware está na lista:
ROOT\LEGACY_BEEP\0000 : beep
Modified 1 hardware ID(s).
Exemplo 41: Adicionar um ID de hardware a todos os dispositivos herdados
The following command uses the DevCon SetHwID operation to add the hardware ID, legacy, to the list of hardware IDs for all legacy devices.
O comando usa o parâmetro menos símbolo (-) para adicionar o novo ID de hardware ao final da lista de ID de hardware do dispositivo, caso exista um ID de hardware preferencial para um dos dispositivos. Ele também usa um padrão de ID de instância de dispositivo, @ROOT\LEGACY*, para identificar os dispositivos herdados no computador, ou seja, todos os dispositivos que têm um ID de instância de dispositivo que começa com ROOT\LEGACY*.
devcon sethwid @ROOT\LEGACY* := -legacy
Em resposta, o DevCon exibe as listas de ID de hardware resultantes para todos os dispositivos afetados:
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).
Depois de atribuir o mesmo ID de hardware a um grupo de dispositivos, você pode usar as outras operações DevCon para exibir e alterar os dispositivos em um único comando.
Por exemplo, o comando a seguir exibe o status de todos os dispositivos herdados:
devcon status legacy
Exemplo 42: Excluir uma ID de hardware de todos os dispositivos herdados
The following command uses the DevCon SetHwID operation to delete the hardware ID legacy from the list of hardware IDs for all legacy devices.
O comando usa a ID legacy de hardware para identificar todos os dispositivos que têm essa ID de hardware. Ele usa o operador delete (!) para excluir o ID de legacy hardware.
devcon sethwid legacy := !legacy
Em resposta, o DevCon exibe as listas de ID de hardware resultantes para todos os dispositivos afetados:
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).
Exemplo 43: Adicionar, excluir e substituir IDs de hardware
The following examples show how to use the various features of the DevCon SetHwID operation.
This series of examples uses a fictitious device, DeviceX, with the device instance ID, ROOT\DeviceX\0000. Antes dos comandos DevCon serem executados para o dispositivo, o dispositivo tem a seguinte lista de IDs de hardware:
Hw3 Hw4
O comando a seguir usa o símbolo de adição (+) para adicionar os valores Hw1 de ID e Hw2 ao início de uma lista de IDs de hardware para DeviceX. Como o Hw2 ID já aparece na lista, o valor do ID é movido, não adicionado. The command uses the at symbol (@) to identify the device by its device instance ID.
devcon sethwid @ROOT\DEVICEX\0000 := +Hw1 Hw2
Em resposta, o DevCon exibe a nova lista de ID de hardware para o dispositivo. Os Hw1 valores e Hw2 ID aparecem no início da lista ID na ordem especificada:
ROOT\DEVICEX\0000 : Hw1,Hw2,Hw3,Hw4
Modified 1 hardware ID(s).
Além disso, o DevCon relata que modificou uma lista de ID de hardware, ou seja, a lista de ID de hardware de um único dispositivo.
O comando a seguir usa o operador delete (!) para excluir o ID de Hw1 hardware. Em seguida, ele lista o ID Hw5 de hardware sem um parâmetro de símbolo. Without symbol parameters, SetHwID adds the hardware ID to the end of the hardware ID list for the device.
This command demonstrates that unlike the other symbol parameters for the DevCon SetHwID operation, the delete operator (!) applies only to the hardware ID that it prefixes.
devcon sethwid @ROOT\DeviceX\0000 := !Hw1 Hw5
Em resposta, o DevCon exibe a lista de ID de hardware resultante para o DeviceX:
ROOT\DEVICEX\0000 : Hw2,Hw3,Hw4,Hw5
Modified 1 hardware ID(s).
O comando a seguir usa o parâmetro equals (=) para substituir todos os IDs de hardware na lista do DeviceX por um único ID de hardware, DevX.
devcon sethwid @ROOT\DeviceX\0000 := =DevX
Em resposta, o DevCon exibe a lista de ID de hardware resultante para o DeviceX:
ROOT\DEVICEX\0000 : DevX
Modified 1 hardware ID(s).
A mensagem de sucesso indica que o DevCon modificou o ID de hardware de um dispositivo.
Exemplo 44: Atualização forçada do HAL
O exemplo a seguir mostra como usar o DevCon para atualizar a HAL no computador. O HAL atual é um uniprocessador (_up) construído com a ACPI (Advanced Configuration and Power Interface) e o Advanced Programmable Interrupt Controller (APIC), conforme apropriado para o computador. Um testador deseja alterar o tipo para um multiprocessador (_mp) ACPI APIC HAL para fins de teste.
The first command uses the DevCon SetHwID operation to change the hardware ID of the HAL from acpiapic_up, the hardware ID for uniprocessor HALs, to acpiapic_mp, the hardware ID for multiprocessor HALs.
You must change the hardware ID because the INF file (.inf) for the HAL includes drivers for both uniprocessor and multiprocessor HALs. The system selects the most appropriate driver from the INF file (.inf) based on the hardware ID of the device. If you don't change the hardware ID, the DevCon Update command reinstalls the same uniprocessor HAL driver.
In the following example, the command identifies the HAL by its instance ID, ROOT\ACPI_HAL\0000, as indicated by the at symbol (@) preceding the ID. O comando usa o símbolo de adição (+) para especificar acpiapic_mp como o primeiro ID de hardware na lista para o HAL. O comando usa o operador delete (!) para excluir o acpiapic_up ID de hardware da lista de IDs para o HAL.
devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up
Em resposta, o DevCon exibe a seguinte nova lista de ID de hardware para a HAL:
ROOT\ACPI_HAL\0000 : acpiapic_mp
Modified 1 hardware ID(s).
The following command uses the DevCon Update operation to update the driver for the HAL:
devcon update c:\windows\inf\hal.inf acpiapic_mp
Em seguida, o DevCon exibe a seguinte mensagem de sucesso:
Updating drivers for acpiapic_mp from c:\windows\inf\hal.inf.
Drivers updated successfully.
Exemplo 45: Adicionar e remover pacotes de driver
Os exemplos a seguir mostram como usar o DevCon para adicionar, excluir e exibir pacotes de driver de terceiros (OEM) no repositório de drivers.
The first command, a DevCon Dp_add operation, copies the INF file (.inf) for the Toaster sample driver in the Windows Driver Kit (WDK) to the driver store, that is, to the %Windir%\inf directory. O comando inclui o caminho totalmente qualificado para o arquivo INF para o driver de exemplo Toaster.
Este comando destina-se a drivers e dispositivos de terceiros (OEM), mas pode-se usar o exemplo Toaster para testar os comandos.
devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
In response, DevCon reports that it added the Toaster INF file to the driver store and named it Oem2.inf:
Driver Package 'oem2.inf' added.
Antes do arquivo INF é copiado para o armazenamento de driver, o Windows compara a versão binária do arquivo com os arquivos semelhantes no armazenamento de driver. Ele verifica se não há arquivos binários com o mesmo nome INF. For example, if you repeat the command to add the Toaster.inf file to the driver store, DevCon doesn't create a new OEM*.inf file. Ele relata apenas o nome do arquivo existente, conforme mostrado na seguinte saída 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.
To remove the driver package for the Toaster driver from the driver store, you must use the OEM*.inf file name for the driver. To find the file name for the driver, use the DevCon Dp_enum operation.
O comando a seguir lista todos os pacotes de driver OEM e algumas de suas propriedades:
devcon dp_enum
Em resposta, o DevCon gera a seguinte saída:
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
The output indicates that the driver package supplied by Microsoft with the unspecified device class (Toaster) is named OEM2.inf. Você pode usar essas informações para excluir o pacote de driver associado ao arquivo.
The following command deletes the OEM2.inf file from the driver store, along with its associated precompiled INF (.pnf) and catalog (.cat) files. The command uses the OEM2.inf file name:
devcon dp_delete oem2.inf
Em resposta, o DevCon exibe uma mensagem que indica o sucesso do comando:
Driver Package 'oem2.inf' deleted.
The OEM.inf* file name is required in the DevCon Dp_delete operation. Se você tentar usar o nome original do arquivo INF, o comando falhará, conforme mostrado na seguinte saída DevCon:
devcon dp_delete C:\WinDDK\5322\src\general\toaster.inf
Deleting the specified Driver Package from the machine failed.
devcon failed.