Partilhar via


Exemplos de Console de dispositivo (DevCon.exe)

Importante

O PnPUtil acompanha todas as versões do Windows e faz uso das APIs mais confiáveis e seguras disponíveis e seu uso é recomendado. Para obter mais informações sobre como usar o PnPutil em vez do devcon, consulte Substituindo o DevCon.

Exemplo de catagories

Esta seção fornece exemplos dos seguintes comandos do Device Console (DevCon.exe):

DevCon HwIDs

Classes DevCon

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon Resources

DevCon Stack

DevCon Status

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon Enable

Desabilitar DevCon

Atualização e atualização do DevConNI

DevCon Install

Remoção DevCon

DevCon Rescan

DevCon Restart

DevCon Reboot

DevCon SetHwID

DevCon dp_add, dp_deleted dp_enum

Detalhes do exemplo

Exemplo 1: Localizar todas as IDs de hardware

Como as operações de DevCon usam IDs e padrões de ID para identificar dispositivos, uma primeira etapa comum no uso de DevCon é criar um arquivo de referência de ID de hardware para dispositivos no computador.

O comando a seguir usa a operação DevCon HwIDs , que retorna as IDs e a descrição do dispositivo. Ele usa o caractere curinga (*) 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 usa o caractere curinga (*) para representar todos os dispositivos no computador. Ele usa o caractere de redirecionamento (>) para salvar a saída do comando no arquivo hwids.txt.

devcon hwids * > hwids.txt

Exemplo 2: Localizar IDs de hardware usando um padrão

Para localizar as IDs de hardware de um dispositivo específico, insira a ID ou o padrão de hardware, a ID ou o padrão compatível, a ID ou o padrão da instância do dispositivo ou o nome da classe de configuração do dispositivo.

O comando a seguir usa a operação DevCon HwIDs e um padrão para localizar as IDs de hardware da unidade de disquete no computador. (O usuário assume que o padrão aparece em um dos identificadores de dispositivo.) O comando usa o caractere curinga (*) para representar todos os caracteres que podem preceder ou seguir a palavra "disquete" em qualquer um dos 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 esses 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.

Nesse caso, a frase "disquete" ocorre na ID de hardware ou ID compatível de apenas um dispositivo no computador. Se isso ocorrer no ID de mais de um dispositivo, todos os dispositivos com "disquete" em seus IDs aparecerão na saída.

Exemplo 3: Localizar IDs de hardware usando uma classe

O comando a seguir usa a operação DevCon HwIDs e uma classe de configuração de dispositivo para localizar as IDs de hardware de todos os dispositivos na classe de configuração de dispositivo Ports. O sinal de igual (=) que precede o nome da classe indica que é uma classe, não um 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 dispositivo de dispositivos no computador.

O comando a seguir usa a operação Classes DevCon , que retorna uma lista e descrição de todas as classes no computador.

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. Ele usa o caractere de redirecionamento (>) para salvar a saída do comando no arquivo classes.txt.

devcon classes > classes.txt

Exemplo 6: Listar os dispositivos em uma classe de configuração de dispositivo

O comando a seguir usa a operação DevCon ListClass para listar os dispositivos em Net, a classe de configuração de dispositivo para adaptadores de rede.

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

Essa exibição, embora interessante, não fornece as IDs de hardware dos dispositivos na classe de configuração Net. O comando a seguir usa a operação DevCon HwIDs para listar os dispositivos na classe de configuração Net. Em um comando DevCon HwIDs, o nome da classe é precedido por um sinal de igual (=) para indicar que é uma classe, não uma 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

O comando a seguir usa a operação ListClass DevCon para listar os dispositivos nas classes DiskDrive, CD-ROM e TapeDrive.

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

O comando a seguir usa a operação DevCon DriverFiles para listar os nomes de arquivo dos drivers que os dispositivos no sistema usam. O comando usa o caractere curinga (*) para indicar todos os dispositivos no sistema. Como a saída é extensa, o comando usa o caractere de redirecionamento (>) para redirecionar a saída para um arquivo de referência, driverfiles.txt.

devcon driverfiles * > driverfiles.txt

Exemplo 9: Listar os arquivos de driver de um dispositivo específico

O comando a seguir usa a operação DevCon DriverFiles para procurar o driver de dispositivo que o dispositivo de mouse no computador local usa. Ele identifica o dispositivo por um de seus IDs de hardware, HID\Vid_045e&Pid_0039&Rev_0121. A ID de hardware é colocada entre aspas porque inclui o caractere e comercial (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

Em resposta, o DevCon exibe os dois drivers de dispositivo que oferecem suporte ao 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

O comando a seguir usa o comando DevCon DriverNodes e um padrão de ID para listar os nós de driver de dispositivos enumerados por software. Os padrões são úteis para localizar informações sobre dispositivos semelhantes que podem não estar na mesma classe de configuração.

O comando a seguir usa o padrão de ID sw\* para especificar dispositivos cujas IDs de hardware ou IDs compatíveis começam com "sw", ou seja, dispositivos enumerados por software.

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

O comando a seguir usa a operação DevCon DriverNodes para listar os pacotes de driver de todos os dispositivos cujas IDs de instância de dispositivo começam com ROOT\MEDIA, ou seja, dispositivos na subchave do Registro Enum\Root\Media. O comando usa o caractere at (@) para indicar que a frase está no ID da instância do dispositivo.

devcon drivernodes @ROOT\MEDIA*

Em resposta, o DevCon exibe os nós de driver de dispositivos cujo ID de instância de dispositivo 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

O comando a seguir usa a operação DevCon Resources para exibir os recursos alocados para dispositivos na classe de configuração de dispositivo HDC. Essa classe inclui controladores IDE. O sinal de igual (=) é precedido a "hdc" para indicar que é uma classe e não um ID.

devcon resources =hdc

Em resposta, o DevCon lista os recursos alocados aos 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

O comando a seguir usa a operação DevCon Resources para listar os recursos alocados ao temporizador do sistema. O comando usa a 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 o ID da instância do dispositivo do temporizador do sistema no comando DevCon resources. O caractere at (@) indica que a cadeia de caracteres é uma ID de instância de dispositivo, não uma ID de hardware ou ID compatível.

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

Exemplo 14: Exibir a pilha de drivers para dispositivos de armazenamento

O comando a seguir usa a operação DevCon Stack para procurar dispositivos na classe de configuração Volume e exibir a pilha de driver esperada para esses dispositivos. O sinal de igual (=) indica que a cadeia de caracteres é um nome de classe.

devcon stack =Volume

Em resposta, o DevCon exibe a pilha esperada para os dispositivos na classe Volume. Os dados retornados incluem o ID da instância do dispositivo e a descrição de cada dispositivo, o GUID e o nome da classe de configuração do dispositivo, os nomes dos drivers de filtro superior e inferior e os serviços de controle (se houver).

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 instalação de um dispositivo

A operação DevCon Stack retorna a classe de instalação de um dispositivo, além dos drivers de filtro superior e inferior. Os comandos a seguir localizam a classe de instalação da interface de porta da impressora localizando sua ID de instância de dispositivo e, em seguida, usando a ID de instância de dispositivo para localizar sua classe de instalação.

O comando a seguir usa a operação DevCon HwIDs para localizar o ID da instância do dispositivo da interface da porta da impressora usando "LPT", uma frase na 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 do 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.

O próximo comando usa a operação DevCon Stack para localizar a classe de configuração do dispositivo do dispositivo representada pelo ID da instância do dispositivo. Um caractere at (@) identifica o ID como um ID de instância de dispositivo. O ID é colocado entre aspas porque inclui caracteres e comerciais.

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

Em resposta, o DevCon exibe a pilha de drivers para a interface da porta da impressora, incluindo a classe. A tela 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.

O comando a seguir usa a operação DevCon Stack para exibir a pilha esperada para dispositivos de driver de miniporta. Ele procura dispositivos na classe de configuração Net que têm "miniporta" em sua ID de hardware ou ID compatível.

Observe que esse comando primeiro limita a pesquisa à classe de configuração Net e, em seguida, localiza a cadeia de caracteres "miniport". Ele não encontra dispositivos diferentes daqueles 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

O comando a seguir usa a operação Status do DevCon para localizar o status de todos os dispositivos no computador local. Em seguida, ele salva o status no arquivo status.txt para registro em log ou revisão posterior. O comando usa o caractere curinga (*) para representar todos os dispositivos e o caractere de redirecionamento (>) para redirecionar a saída para o arquivo 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 dispositivo específico é usar o ID de instância do dispositivo.

O comando a seguir usa o ID da instância do dispositivo do controlador de E/S no computador local em um comando Status do DevCon . O comando inclui o ID da instância do dispositivo do dispositivo, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. O caractere at (@) prefixado ao ID identifica a cadeia de caracteres como um ID de instância de dispositivo. O ID deve ser colocado entre aspas porque inclui caracteres e comerciais.

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.

O comando a seguir usa a operação Status do DevCon para exibir o status de dispositivos específicos relacionados ao armazenamento. Ele procura os seguintes dispositivos:

  • Unidade de disco, GenDisk

  • Unidade de CD-ROM, GenCdRom

  • Unidade de disquete, FDC\GENERIC_FLOPPY_DRIVE

  • Volumes, ARMAZENAMENTO\Volume

  • Gerenciador de disco lógico, ROOT\DMIO

  • Gerenciador 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

O comando a seguir usa a operação DevCon Find para procurar dispositivos de mouse. Especificamente, o comando procura no computador dispositivos cuja ID de hardware ou ID compatível inclui "mou.", e não encontraria um driver "alce".

devcon find *mou*

Nesse caso, a DevCon encontrou os 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 procurar IDs de hardware. Selecione a operação com base no conteúdo necessário na saída. Por exemplo, para localizar os drivers de dispositivo que os dispositivos relacionados ao mouse em um computador local usam, envie o seguinte comando.

devcon driverfiles *mou*

Em resposta, a DevCon localiza 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 de instância de dispositivo ou classe

Os comandos a seguir usam a operação DevCon Find para exibir todos os dispositivos herdados no computador local. Como os dispositivos herdados não têm uma ID de hardware, você deve procurá-los por seu ID de instância de dispositivo (caminho do Registro), ROOT\LEGACY ou sua classe de configuração, LegacyDriver.

O primeiro comando localiza drivers herdados por um padrão de ID de instância de dispositivo. O padrão de ID é precedido pelo caractere at (@) para indicar um ID de instância de dispositivo e seguido pelo caractere curinga (*) para localizar todos os dispositivos na subchave ROOT\Herdacy.

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

O comando a seguir usa a operação FindAll do DevCon para localizar todos os dispositivos no computador na classe de instalação Net. O sinal de igual (=) indica que Net é uma classe de configuração e não um ID.

devcon findall =net

Em resposta, o DevCon lista os sete dispositivos a seguir 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\*) que não é instalado até que seja 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.

O comando a seguir compara as operações DevCon Find e DevCon FindAll executando um comando DevCon Find com os mesmos parâmetros do comando DevCon FindAll anterior.

devcon find =net

Em resposta, o DevCon lista os seis dispositivos a seguir 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.

Previsivelmente, o comando DevCon Find , que retorna apenas dispositivos instalados no momento, não lista o dispositivo enumerado por software porque o dispositivo não está instalado.

Exemplo 23: Exibir os drivers de filtro para uma classe de instalação

O comando a seguir usa a operação ClassFilter do DevCon para exibir os drivers de filtro superiores para a classe de instalação do DiskDrive. Como esse comando não inclui operadores classfilter, 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 não os alterou. Nesse caso, a exibição mostra que os dispositivos na classe de instalação do DiskDrive usam o driver de filtro superior PartMgr.sys.

Class filters unchanged.
    PartMgr

Exemplo 24: Adicionar um driver de filtro a uma classe de instalação

O comando a seguir usa a operação ClassFilter do DevCon para adicionar um filtro fictício, Disklog.sys, à lista de drivers de filtro superiores para a classe de instalação do DiskDrive.

Esse comando usa o operador ClassFilter add-after (+) para carregar o driver Disklog após o driver PartMgr para que ele receba dados que PartMgr.sys já processou.

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 parâmetro /r , que reinicializa o sistema se for necessário tornar a alteração do filtro de classe efetiva.

devcon /r classfilter DiskDrive upper +Disklog

Em resposta, o DevCon exibe os drivers de filtro superior atuais para a classe DiskDrive.

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

Se você escrever incorretamente o nome do driver ou tentar adicionar um driver que não está instalado no sistema, o comando falhará. O DevCon não adiciona um driver a menos que o driver esteja registrado como um serviço, ou seja, a menos que o driver tenha uma subchave na subchave do Registro Serviços (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services).

O comando a seguir testa esse recurso de proteção. 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

O comando a seguir usa a operação ClassFilter do DevCon para adicionar um driver de filtro fictício, MyFilter.sys, à lista de drivers de filtro superiores para a classe de instalação do DiskDrive. O comando coloca MyFilter.sys entre PartMgr.sys e Disklog.sys na ordem de carregamento.

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

O primeiro subcomando, @Disklog, usa o operador de posicionamento (@) para colocar o cursor virtual no driver de filtro Disklog. O segundo subcomando, -MyFilter, usa o operador add-before (-) para adicionar MyFilter.sys antes Disklog.sys.

O comando também usa o parâmetro /r , que reinicializa o sistema se for necessário tornar a alteração do filtro de classe efetiva.

O operador de posicionamento é essencial neste exemplo. Antes de o 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 ativado 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 superior 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. O segundo subcomando, +MyFilter, usa o operador add-after (+) para adicionar MyFilter.sys após PartMgr.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Exemplo 26: Substituir um driver de filtro

O comando a seguir usa a operação ClassFilter do DevCon para substituir a cópia original do MyFilter.sys por uma versão nova e aprimorada, MyNewFilter.sys, na lista de drivers de filtro para a classe de instalação do DiskDrive.

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 (!) para excluir MyFilter da lista de drivers de filtro superiores para a classe DiskDrive. (Isso não afeta o arquivo MyFilter.sys no diretório C:\Windows\System32\Drivers.)

O segundo subcomando usa o operador add-after (+) para colocar o novo driver de filtro na posição que o driver excluído ocupou. Como o operador delete deixa o cursor na posição que o filtro excluído ocupou, os operadores add-before (-) e add-after (+) têm o mesmo efeito.)

O comando também usa o parâmetro /r , que reinicializa o sistema se for necessário tornar a alteração do filtro de classe efetiva.

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

O comando a seguir usa a operação ClassFilter do DevCon para alterar a ordem dos drivers de filtro da classe de instalação do DiskDrive. Especificamente, ele inverte a ordem do segundo e terceiro drivers 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.

Antes Após
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

O primeiro subcomando usa o operador delete (!) para excluir o Disklog da lista. O segundo subcomando usa o operador start (=) para mover o cursor virtual de volta para a posição inicial e, em seguida, usa o operador de posicionamento (@) para colocar o cursor no driver PartMgr. O operador start é necessário porque o cursor virtual avança apenas pela 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: Habilitar um dispositivo específico

O comando a seguir usa a operação DevCon Enable para habilitar um controlador de interrupção programável que havia sido desabilitado para corrigir um problema do sistema. Como o ID de hardware *PNP0000 do controlador inclui um asterisco, o comando usa o caractere de aspas simples (') para direcionar o DevCon a localizar o ID de hardware exatamente como ele é especificado no comando. Caso contrário, o asterisco seria interpretado 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.

Você pode responder reinicializando o sistema, manualmente ou usando a operação de reinicialização do DevCon.

O comando a seguir adiciona o parâmetro /r ao comando anterior. O parâmetro /r reinicializa o sistema somente se a reinicialização for necessária para concluir uma operação.

devcon /r enable '*PNP0000

Em resposta, o DevCon habilita o dispositivo e, em seguida, reinicializa o sistema para tornar a habilitação efetiva.

Quando o sistema for iniciado, use um comando de status DevCon 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

O comando a seguir habilita todos os dispositivos de impressora no computador especificando a classe de configuração Printer em um comando DevCon Enable . O comando inclui o parâmetro /r , que reinicializa o sistema se for necessário tornar a habilitação efetiva.

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 ele está habilitado. Embora o comando incluísse o parâmetro /r , o sistema não foi reinicializado porque uma reinicialização não foi necessária para habilitar a impressora.

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

Exemplo 30: Desabilitar dispositivos por um padrão de ID

O comando a seguir usa a operação DevCon Disable para desabilitar os dispositivos USB no computador local. Ele identifica os dispositivos por um padrão de ID de hardware (USB*). Esse padrão corresponderá a qualquer dispositivo cujo ID de hardware ou ID compatível comece com "USB". O comando inclui o parâmetro /r , que reinicializa o sistema se for necessário tornar a desativação efetiva.

Observação Antes de usar um padrão de ID para desabilitar um dispositivo, determine quais dispositivos serão afetados. Para fazer isso, 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 desabilitados. Embora o comando incluísse o parâmetro /r , o sistema não foi reinicializado porque uma reinicialização não foi 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: Desabilitar dispositivos por ID de instância de dispositivo

O comando a seguir usa a operação DevCon Disable para desabilitar os dispositivos USB no computador local. Esse comando identifica os dispositivos por seus IDs de instância de dispositivo, conforme indicado pelo caractere at (@) que precede cada ID. Cada ID de instância de dispositivo é separado dos outros por um espaço.

Além disso, como os IDs de instância do dispositivo incluem o caractere e comercial (&), eles são colocados entre aspas. O comando inclui o parâmetro /r , que reinicializa o sistema se for necessário tornar a desativação efetiva.

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 desabilitados. Embora o comando incluísse o parâmetro /r , o sistema não foi reinicializado porque uma reinicialização não foi 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

O comando a seguir usa a operação DevCon Update para substituir o driver de dispositivo atual para portas de comunicação no sistema por um driver de teste especificado no arquivo test.inf. O comando afeta apenas dispositivos cuja ID de hardware inteira é *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

Em resposta, o DevCon exibe um aviso de Instalação de Hardware explicando que o driver não passou no teste do logotipo do Windows. Se você selecionar o botão Continuar mesmo assim na caixa de diálogo, a instalação continuará.

Em seguida, DevCon exibe a seguinte mensagem de êxito.

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

Você também pode usar a operação DevCon UpdateNI, a versão não interativa da operação DevCon Update, para atualizar drivers. A operação DevCon UpdateNI é idêntica à operação DevCon Update, exceto que ela suprime todos os prompts do usuário que exigem uma resposta e assume a resposta padrão para o prompt.

O comando a seguir usa a operação DevCon UpdateNI para instalar o driver de teste.

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

Nesse caso, o DevCon não exibe o aviso de instalação de hardware. Em vez disso, ele assume a resposta padrão, Parar instalação. 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

O comando a seguir usa a operação DevCon Install para instalar um dispositivo de teclado no computador local. O comando inclui o caminho completo para o arquivo INF do dispositivo (keyboard.inf) e uma ID de hardware (*PNP030b).

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

Em resposta, a DevCon informa que instalou o dispositivo, ou seja, criou um nó de dispositivo para o novo dispositivo e atualizou 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.

Para instalar este dispositivo durante uma instalação autônoma, comece adicionando os seguintes arquivos a um disquete: devcon.exe e netloop.inf (C:\Windows\inf\netloop.inf).

Em seguida, para a seção [GUIRunOnce] do arquivo de instalação autônoma, adicione o seguinte comando DevCon:

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 "*MSLOOP" diz ao DevCon para interpretar a cadeia de caracteres literalmente, ou seja, para interpretar o asterisco como parte da ID de hardware, não como um caractere curinga.

O comando também especifica que o DevCon use o arquivo Netloop.inf (no disquete) na instalação. O parâmetro /r reinicializa o computador somente se uma reinicialização for necessária 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 por padrão de ID de instância de dispositivo

O comando a seguir usa a operação DevCon Remove para remover todos os dispositivos USB do computador. 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\". O caractere at (@) distingue o ID da instância do dispositivo de um ID de hardware ou ID compatível. O comando também inclui o parâmetro /r que reinicializa o sistema se for necessário para tornar o procedimento de remoção efetivo.

Aviso

Antes de remover qualquer dispositivo usando um padrão, determine quais dispositivos são afetados. Para fazer isso, 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

O comando a seguir usa a operação DevCon Remove para desinstalar o driver de miniporta NDISWAN do computador local. O comando especifica a classe Net e, em seguida, refina a pesquisa especificando dispositivos na classe cuja ID de hardware ou ID compatível incluem "ndiswan". O comando também inclui o parâmetro /r , que reinicializa o sistema se a reinicialização for necessária para tornar o procedimento de remoção efetivo.

Aviso Antes de remover qualquer dispositivo usando um padrão, determine quais dispositivos serão afetados. Para fazer isso, 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

O comando a seguir usa a operação DevCon Rescan para verificar se há novos dispositivos no computador local.

devcon rescan

Em resposta, a DevCon relata que escaneou o sistema, mas não encontrou novos dispositivos.

Scanning for new hardware.
Scanning completed.

Exemplo 38: Reiniciar um dispositivo

O comando a seguir usa a operação DevCon Restart para reiniciar o adaptador de loopback no computador local. O comando limita a pesquisa à classe de configuração Net e, dentro dessa classe, especifica o ID da instância do dispositivo do adaptador de loopback, @'ROOT\*MSLOOP\0000. O caractere at (@) identifica a cadeia de caracteres como um ID de instância de dispositivo. O caractere de aspas simples ('), que solicita uma pesquisa literal, impede que o DevCon interprete o asterisco no ID 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: Reinicializar o computador local

O comando a seguir usa a operação DevCon Reboot para reinicializar o sistema operacional no computador local e associar a reinicialização a uma instalação de hardware. Ao contrário do parâmetro /r, a operação de reinicialização do DevCon não depende do código de retorno de outra operação.

Você pode incluir esse comando em scripts e arquivos em lotes 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 usa a função padrão ExitWindowsEx para reinicializar. Se o usuário tiver arquivos abertos no computador ou um programa não for fechado, o sistema não será reinicializado até que o usuário tenha respondido às solicitações do sistema para fechar os arquivos ou encerrar o processo.

Exemplo 40: Atribuir uma ID de hardware a um dispositivo herdado

O comando a seguir usa a operação DevCon SetHwID para atribuir a ID de hardware, bipe, ao dispositivo de bipe herdado.

O comando usa o ID de instância do dispositivo do dispositivo, ROOT\LEGACY_BEEP\0000, porque o dispositivo herdado de bipe não tem IDs de hardware ou IDs compatíveis. Ele usa o caractere at (@) para indicar que a cadeia de caracteres é um ID de instância de dispositivo.

O comando não usa nenhum parâmetro de símbolo para posicionar a ID. Por padrão, o DevCon adiciona novas IDs de hardware ao final de uma lista de ID de hardware. Nesse caso, como o dispositivo não tem outras IDs de hardware, o posicionamento é irrelevante.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

Em resposta, o DevCon exibe uma mensagem indicando que ele adicionou bipe à lista de ID de hardware do dispositivo. Ele também exibe a lista de ID de hardware resultante. Nesse caso, há apenas uma ID de hardware na lista.

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

Exemplo 41: Adicionar uma ID de hardware a todos os dispositivos herdados

O comando a seguir usa a operação DevCon SetHwID para adicionar a ID de hardware, legado, à lista de IDs de hardware para todos os dispositivos herdados.

O comando usa o - parâmetro symbol para adicionar a nova ID de hardware ao final da lista de ID de hardware do dispositivo, caso uma ID de hardware preferencial tenha sido criada 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 cujo ID de instância de dispositivo 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 a mesma 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

O comando a seguir usa a operação DevCon SetHwID para excluir a ID de hardware, legada, da lista de IDs de hardware de todos os dispositivos herdados.

O comando usa a ID de hardware, legacy, para identificar todos os dispositivos que têm essa ID de hardware. Em seguida, ele usa o parâmetro ! symbol para excluir a ID de hardware herdada .

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

A série de exemplos a seguir mostra como usar os recursos variados da operação SetHwID do DevCon.

Esta série usa um dispositivo fictício, DeviceX, com o ID de instância do dispositivo, ROOT\DeviceX\0000. Antes de usar o DevCon, o dispositivo tinha a seguinte lista de IDs de hardware:

Hw3 Hw4

O comando a seguir usa o + símbolo para adicionar Hw1 e Hw2 ao início de uma lista de IDs de hardware para DeviceX. Como Hw2 já aparece na lista, ele é movido, não adicionado. O comando identifica o dispositivo por seu ID de instância de dispositivo, conforme indicado pelo caractere@ () que precede o ID.

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

Em resposta, o DevCon exibe a nova lista de ID de hardware para o dispositivo. Observe que Hw1 e Hw2 aparecem no início da lista 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 dispositivo.

O comando a seguir usa o símbolo ! para excluir a ID de hardware Hw1 . Em seguida, ele lista o ID de hardware, Hw5, sem um parâmetro de símbolo. Sem parâmetros de símbolo, SetHwID adiciona a ID de hardware ao final da lista de ID de hardware do dispositivo.

Esse comando demonstra que, ao contrário dos outros parâmetros de símbolo para a operação SetHwID do DevCon, o símbolo ! se aplica somente à ID de hardware que ele prefixa.

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 = para substituir todas as IDs de hardware na lista para DeviceX por uma única 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 êxito indica que a DevCon modificou a ID de hardware de um dispositivo.

Exemplo 44: Atualizar à força o HAL

O exemplo a seguir mostra como usar o DevCon para atualizar o HAL no computador. Neste exemplo, um testador deseja substituir o APCI APIC HAL do uniprocessador que é mais adequado para o computador por um APCI APIC HAL multiprocessador para fins de teste.

O primeiro comando usa a operação DevCon SetHwID para alterar a ID de hardware da HAL de acpiapic_up, a ID de hardware para HALs de processador único, para acpiapic_mp, a ID de hardware para HALs de multiprocessador.

Você deve alterar a ID de hardware porque o arquivo INF para o HAL inclui drivers para HALs de processador único e multiprocessador. O sistema seleciona o driver mais apropriado do arquivo INF com base na ID de hardware do dispositivo. Se você não alterar a ID do hardware, o comando DevCon Update simplesmente reinstalará o driver HAL do uniprocessador.

No comando a seguir, o comando identifica o HAL por seu ID de instância, ROOT\ACPI_HAL\0000, conforme indicado pelo caractere @ que precede o ID. O comando usa o caractere + para torná acpiapic_mp a primeira ID de hardware na lista para o HAL. Em seguida, ele usa o caractere ! para excluir a ID de hardware acpiapic_up da lista de IDs para o HAL.

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

Em resposta, o DevCon exibe a nova lista de ID de hardware a seguir para o HAL.

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

O comando a seguir usa a operação DevCon Update para atualizar o driver para o HAL.

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

Em seguida, DevCon exibe a seguinte mensagem de êxito.

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.

O primeiro comando, um comando DevCon Dp_add , copia o arquivo INF do driver de exemplo Toaster no WDK para o armazenamento do driver, ou seja, para o diretório %Windir%\inf. O comando inclui o caminho totalmente qualificado para o arquivo INF para o driver de exemplo Toaster.

Esse comando destina-se a drivers e dispositivos de terceiros (OEM), mas você pode usar o exemplo Toaster para testar os comandos.

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

Em resposta, a DevCon relata que adicionou o arquivo Toaster INF ao armazenamento do driver e o nomeou Oem2.inf.

Driver Package 'oem2.inf' added.

Antes de copiá-lo para o armazenamento de driver, o Windows compara a versão binária do arquivo INF com as versões binárias dos arquivos INF no armazenamento de driver para ter certeza de que ele não está adicionando um arquivo duplicado. Por exemplo, se você repetir o comando para adicionar Toaster.inf ao armazenamento de driver, DevCon não cria um novo arquivo OEM*.inf. Ele apenas relata o nome do arquivo existente, conforme mostrado na saída DevCon a seguir.

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.

Para remover o pacote de driver para o driver Toaster do armazenamento de driver, você deve usar o nome de arquivo OEM*.inf para o driver. Para localizar o nome do arquivo para o driver, use o comando DevCon Dp_enum.

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 exibição:

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

Essas informações indicam que o pacote de driver fornecido pela Microsoft com a classe de dispositivo não especificado (Toaster) é chamado OEM2.inf. Você pode usar essas informações para excluir o pacote de driver associado ao arquivo.

O comando a seguir exclui o arquivo OEM2.inf do armazenamento do driver, juntamente com seus arquivos INF (.pnf) e de catálogo (.cat) pré-compilados associados. O comando usa o nome do arquivo OEM*.inf.

devcon dp_delete oem2.inf

Em resposta, o DevCon exibe uma mensagem que indica que o comando foi bem-sucedido:

Driver Package 'oem2.inf' deleted.

O nome do arquivo OEM*.inf é necessário no comando DevCon Dp_delete. Se você tentar usar o nome original do arquivo INF, o comando falhará, conforme mostrado na saída DevCon a seguir.

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