Compartilhar via


Exemplos do Console do Dispositivo (DevCon.exe)

Importante

O PnPUtil é fornecido com todas as versões do Windows e usa as APIs mais confiáveis e seguras disponíveis e seu uso é recomendado. Para obter mais informações sobre como usar pnPutil em vez de devcon, consulte Substituindo DevCon.

Exemplo de catagories

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

DevCon HwIDs

Classes DevCon

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

Recursos de DevCon

DevCon Stack

Status do DevCon

Busca DevCon

DevCon FindAll

DevCon ClassFilter

Habilitar DevCon

Desabilitar DevCon

Atualização do DevCon e UpdateNI

Instalação do DevCon

Remoção DevCon

DevCon Rescan

Reinicialização de DevCon

Reinicialização de DevCon

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 do 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 de 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 determinado dispositivo, insira a ID ou o padrão de hardware, a ID ou o padrão compatíveis, a ID ou o padrão da instância do dispositivo ou o nome da classe de instalaçã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 disco disquete no computador. (O usuário pressupõe que o padrão aparece em um dos identificadores do dispositivo.) O comando usa o caractere curinga (*) para representar todos os caracteres que podem preceder ou seguir a palavra "disquete" em qualquer uma das IDs.

devcon hwids *floppy*

Em resposta, o DevCon exibe a ID da instância do dispositivo, a ID de hardware e a ID compatível da unidade de disco disquete no computador. Você pode usar essas IDs em comandos de 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, o termo "floppy" ocorre na ID de hardware ou na ID compatível de apenas um dispositivo no computador. Se ocorrer no ID de mais de um dispositivo, todos os dispositivos com "floppy" 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 instalação de dispositivo para localizar as IDs de hardware de todos os dispositivos na classe de instalação do dispositivo Ports. O sinal de igual (=) anterior ao nome da classe indica que é uma classe, não uma ID.

devcon hwids =ports

Em resposta, o DevCon exibe as IDs de hardware e IDs compatíveis dos três dispositivos na classe de instalação Ports.

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 de DevCon podem usar a classe de instalação do dispositivo para identificar dispositivos, é útil criar um arquivo de referência das classes de instalação de dispositivos no computador.

O comando a seguir usa a operação Classes DevCon , que retorna uma lista e uma 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 de 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 no Net, a classe de instalação do dispositivo para adaptadores de rede.

devcon listclass net

Em resposta, o DevCon exibe a 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 de rede. O comando a seguir usa a operação DevCon HwIDs para listar os dispositivos na classe de instalaçã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 a 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 DevCon ListClass para listar os dispositivos nas classes DiskDrive, CDROM 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 de 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 pesquisar o driver de dispositivo que o dispositivo do mouse no computador local usa. Ele identifica o dispositivo por uma de suas IDs de hardware, HID\Vid_045e&Pid_0039&Rev_0121. O ID de hardware está entre aspas porque inclui o caractere ampersand (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

Em resposta, o DevCon exibe os dois drivers de dispositivo que dão suporte ao dispositivo do 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 encontrar informações sobre dispositivos semelhantes que podem não estar na mesma classe de instalaçã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 controladores dos 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 da instância do dispositivo

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

devcon drivernodes @ROOT\MEDIA*

Em resposta, o DevCon exibe os nós de driver dos dispositivos cuja ID da instância do 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 instalação do dispositivo Hdc. Essa classe inclui controladores IDE. O sinal de igual (=) é anexado a "hdc" para indicar que é uma classe e não uma 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 para o 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 a ID da instância do dispositivo do temporizador do sistema no comando de recursos do DevCon. O caractere em (@) indica que a cadeia de caracteres é uma ID da instância do dispositivo, não uma ID de hardware ou uma ID compatível.

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

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

O comando a seguir usa a operação DevCon Stack para pesquisar 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 de dispositivos esperada na classe Volume. Os dados retornados incluem a 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 encontram a classe de configuração da interface de porta da impressora ao localizar a ID de instância do dispositivo e em seguida utilizá-la para encontrar sua classe de configuração.

O comando a seguir usa a operação DevCon HwIDs para localizar a 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, a DevCon retorna a ID da instância do dispositivo (exibida em texto em negrito) e a 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.

O próximo comando usa a operação DevCon Stack para localizar a classe de instalação do dispositivo representada pela ID da instância do dispositivo. Um caractere at (@) identifica a ID como uma ID da instância do dispositivo. A ID está entre aspas porque inclui caracteres escarpas.

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

Em resposta, o DevCon mostra a pilha de drivers para a interface da porta da impressora, incluindo a classe. A exibição 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 miniport driver. Ele pesquisa dispositivos na classe de configuração Net que têm "miniporto" em seu 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 da 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 DevCon Status 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 pela ID da instância do dispositivo

A maneira mais confiável de localizar o status de um determinado dispositivo é usar a ID da instância do dispositivo.

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

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 DevCon Status para exibir o status de determinados dispositivos relacionados ao armazenamento. Ele pesquisa os seguintes dispositivos:

  • Unidade de disco, GenDisk

  • unidade CD-ROM, GenCdRom

  • Unidade de disco disquete, FDC\GENERIC_FLOPPY_DRIVE

  • Volumes, STORAGE\Volume

  • Gerenciador de disco lógico, ROOT\DMIO

  • Gerenciador de volumes, ROOT\FTDISK

  • Controlador de disco disquete, ACPI\PNP0700

No comando, cada ID é separada das outras por espaços. Observe que GenDisk e GenCdRom são IDs compatíveis, enquanto as outras 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 pesquisar dispositivos do mouse. Especificamente, o comando pesquisa o computador em busca de dispositivos cuja ID de hardware ou ID compatível inclua "mou.", e não encontraria um driver chamado "moose".

devcon find *mou*

Nesse caso, a DevCon encontrou ambos os 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 de 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 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 comando a seguir.

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 ou classe da instância do dispositivo

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 pesquisá-los pela ID da instância do dispositivo (caminho do Registro), ROOT\LEGACY ou sua classe de instalação, LegacyDriver.

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

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, nesse caso, encontrando os mesmos 27 dispositivos herdados.

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: Encontrar (e listar todos) dispositivos em uma classe de configuração

O comando a seguir usa a operação DevCon FindAll 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 uma ID.

devcon findall =net

Em resposta, a DevCon lista os sete dispositivos a seguir na classe de configuração de rede. 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, a DevCon lista os seis dispositivos a seguir na classe de instalaçã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 DevCon ClassFilter para exibir os drivers de filtro superior para a classe de instalação do DiskDrive. Como esse comando não inclui nenhum operador de filtro de classe, o DevCon exibe os drivers de filtro da classe, mas não os altera.

devcon classfilter DiskDrive upper

Em resposta, o DevCon exibe os drivers de filtro superior para a classe DiskDrive e confirma que ele não os alterou. Nesse caso, o monitor exibe que os dispositivos na classe de configuraçã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 DevCon ClassFilter para adicionar um filtro fictício, Disklog.sys, à lista de drivers de filtro superior 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, garantindo que ele receba os dados que já foram processados pelo PartMgr.sys.

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 driver de filtro.

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

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ê digitar incorretamente o nome do driver ou tentar adicionar um driver que não está instalado no sistema, o comando falhará. A 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 de 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 DevCon ClassFilter para adicionar um driver de filtro fictício, MyFilter.sys, à lista de drivers de filtro superior para a classe de instalação do DiskDrive. O comando coloca MyFilter.sys entre PartMgr.sys e Disklog.sys na ordem de carga.

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

A lista a seguir mostra os drivers de filtro da classe DiskDrive antes do comando ser 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 de Disklog.sys.

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

O operador de posicionamento é essencial neste exemplo. Antes de a DevCon processar quaisquer subcomandos de filtro de classe, 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 sobre um driver, o DevCon adicionará o driver ao início da lista. Ao usar o operador "adicionar após" (-) quando o cursor não estiver posicionado em um driver, o driver será adicionado 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 comando a seguir 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 adiciona-após (+) para adicionar MyFilter.sys após o PartMgr.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Exemplo 26: Substituir um driver de filtro

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

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

A lista a seguir mostra os drivers de filtro da classe DiskDrive antes do comando ser enviado.

    PartMgr
    MyFilter
    Disklog

O primeiro subcomando usa o operador de exclusão (!) para excluir MyFilter da lista de drivers de filtro superior para a classe DiskDrive. (Ele não afeta o arquivo MyFilter.sys no diretório C:\Windows\System32\Drivers.)

O segundo subcomando usa o operador de adição após (+) para colocar o novo driver de filtro na posição que o driver removido ocupou. Como o operador de exclusão deixa o cursor na posição em que o filtro excluído está ocupado, 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 para tornar a alteração do filtro de classe eficaz.

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

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

A lista a seguir mostra os drivers de filtro da classe DiskDrive antes do comando ser enviado. Ele também mostra o resultado pretendido do comando.

Antes Depois
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

O primeiro subcomando usa o operador de exclusão (!) para excluir o Disklog da lista. O segundo subcomando usa o operador inicial (=) 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 inicial é necessário porque o cursor virtual só avança pela lista. O subcomando final utiliza o operador de adição após (+) para adicionar Disklog após PartMgr.

Em resposta, 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 Habilitar DevCon para habilitar um controlador de interrupção programável que foi desabilitado para corrigir um problema do sistema. Como a ID de hardware do controlador *PNP0000 inclui um asterisco, o comando usa o caractere de aspa única (') para direcionar o DevCon para localizar a ID de hardware exatamente como ela é especificada no comando. Caso contrário, o asterisco será interpretado como um caractere curinga.

devcon enable '*PNP0000

Em resposta, o DevCon exibe a ID da instância do dispositivo e explica que você deve reinicializar 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 DevCon Reboot .

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 reinicializa o sistema para tornar a habilitação eficaz.

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 instalação impressora em um comando Habilitar DevCon . O comando inclui o parâmetro /r , que reinicializa o sistema se for necessário para tornar a habilitação eficaz.

devcon /r enable =Printer

Em resposta, o DevCon exibe a ID da instância do dispositivo da impressora encontrada na classe Printer e informa que ela está habilitada. Embora o comando incluísse o parâmetro /r , o sistema não reinicializava porque uma reinicialização não era 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 cuja 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 para tornar a desabilitação eficaz.

Nota 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 as IDs de instância dos dispositivos USB e relata que eles estão desabilitados. Embora o comando incluísse o parâmetro /r , o sistema não reinicializava porque uma reinicialização não era necessária para desabilitar 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 pelo ID da instância do 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 suas IDs de instância do dispositivo, conforme indicado pelo caractere em (@) que precede cada ID. Cada ID de instância do dispositivo é separada das outras por um espaço.

Além disso, como as IDs da instância do dispositivo incluem o caractere estornado (&), elas estão entre aspas. O comando inclui o parâmetro /r , que reinicializa o sistema se for necessário para tornar a desabilitaçã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 dos dispositivos USB e informa que estão desativados. Embora o comando incluísse o parâmetro /r , o sistema não reinicializava porque uma reinicialização não era necessária para desabilitar 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 De qualquer maneira 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ãointerativa da operação DevCon Update , para atualizar drivers. A operação DevCon UpdateNI é idêntica à operação DevCon Update , exceto que suprime todos os prompts de 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, a DevCon não exibe o aviso de Instalação de Hardware . Em vez disso, ele pressupõe a resposta padrão, Parar Instalação. Como resultado, a 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, ele 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 configuração autônoma

O exemplo a seguir mostra como instalar o Adaptador de Loopback da Microsoft durante uma instalação autônoma do Microsoft Windows XP.

Para instalar esse 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, na seção [GUIRunOnce] do arquivo de instalação autônoma, adicione o seguinte comando DevCon:

a:\devcon /r install a:\Netloop.inf '*MSLOOP

Esse comando identifica o adaptador de loopback usando sua ID de hardware, *MSLOOP. O caractere de aspa única anterior a "*MSLOOP" indica ao DevCon para interpretar o texto literalmente, ou seja, para interpretar o asterisco como parte da identificação 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.

Por fim, adicione as configurações de rede ao arquivo de instalação autônoma e execute a configuração autônoma.

Exemplo 35: remover dispositivos por padrão de ID da instância do dispositivo

O comando a seguir usa a operação Remover DevCon para remover todos os dispositivos USB do computador. Ele identifica os dispositivos por um padrão de ID da instância do dispositivo que corresponde a qualquer ID da instância do dispositivo (caminho do Registro) que começa com a cadeia de caracteres "USB\". O caractere "@" (@) diferencia o identificador de instância do dispositivo de um identificador de hardware ou de um identificador 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 eficaz.

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 de instância do dispositivo dos dispositivos que ele removeu.

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 Remover DevCon para desinstalar o driver de miniporto 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 eficaz.

Aviso Antes de remover os dispositivos 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 a ID da instância do dispositivo que ele removeu.

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 o computador local em busca de novos dispositivos.

devcon rescan

Em resposta, a DevCon informa que examinou 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 a ID da instância do dispositivo do adaptador de loopback, @'ROOT\*MSLOOP\0000. O caractere em (@) identifica a cadeia de caracteres como uma ID da instância do dispositivo. O caractere de aspa única ('), que solicita uma pesquisa literal, impede que o DevCon interprete o asterisco na ID como um caractere curinga.

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

Em resposta, o DevCon exibe o identificador de 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 DevCon Reboot não depende do código de retorno de outra operação.

Você pode incluir esse comando em scripts e arquivos em lote que exigem que o sistema seja reinicializado.

devcon reboot

Em resposta, o DevCon exibe uma mensagem indicando que ele está reiniciando o computador (reinicializando o computador local).

A DevCon usa a função ExitWindowsEx padrão para reinicialização. 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 aos prompts 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 o ID de hardware 'beep' ao dispositivo beep legado.

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

O comando não usa parâmetros de símbolo para posicionar a ID. Por padrão, a DevCon adiciona novas IDs de hardware ao final de uma lista de IDs 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 "beep" foi adicionado à lista de IDs de hardware do dispositivo. Ele também exibe a lista de IDs de hardware resultantes. 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, herdada, à lista de IDs de hardware para todos os dispositivos herdados.

O comando usa o - parâmetro de símbolo para adicionar a nova ID de hardware ao final da lista de IDs 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 da instância do dispositivo, @ROOT\LEGACY\*para identificar os dispositivos herdados no computador, ou seja, todos os dispositivos cuja ID da instância do dispositivo começa com ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

Em resposta, o DevCon exibe as listas de IDs 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 de 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, herdada, da lista de IDs de hardware para todos os dispositivos herdados.

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

devcon sethwid legacy := !legacy

Em resposta, o DevCon exibe as listas de IDs 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 DevCon SetHwID .

Esta série usa um dispositivo fictício, DeviceX, com a ID da 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 pela ID da instância do dispositivo, conforme indicado pelo caractere at (@) anterior à ID.

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

Em resposta, o DevCon exibe a nova lista de IDs 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, a DevCon informa que modificou uma lista de IDs de hardware, ou seja, a lista de IDs de hardware de um dispositivo.

O comando a seguir usa o símbolo ! para excluir a ID de hardware Hw1 . Em seguida, ele lista a 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 IDs de hardware para o dispositivo.

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

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

Em resposta, o DevCon exibe a lista de IDs de hardware resultantes para 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 do DeviceX por uma única ID de hardware, DevX.

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

Em resposta, o DevCon exibe a lista de IDs de hardware resultantes para 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 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 do HAL de acpiapic_up, a ID de hardware para HALs uniprocessador, para acpiapic_mp, a ID de hardware para HALs multiprocessador.

Você deve alterar a ID de hardware porque o arquivo INF do HAL inclui drivers para HALs uniprocessador 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 de hardware, o comando DevCon Update simplesmente reinstalaria o driver HAL uniprocessador.

No comando a seguir, o comando identifica o HAL por sua ID de instância, ROOT\ACPI_HAL\0000, conforme indicado pelo @ caractere anterior à ID. O comando utiliza o caractere + para fazer com que acpiapic_mp seja o primeiro 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 seguinte nova lista de IDs de hardware 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 driver.

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

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

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

Em resposta, a DevCon informa que adicionou o arquivo INF do Toaster ao repositório de driver e o nomeou Oem2.inf.

Driver Package 'oem2.inf' added.

Antes de copiá-lo para o repositório de driver, o Windows compara a versão binária do arquivo INF com as versões binárias dos arquivos INF no repositório 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 repositório de driver, a DevCon não criará um novo arquivo OEM*.inf. Ele apenas relata o nome do arquivo existente, conforme mostrado na saída de 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 drivers do repositório de drivers para o driver Toaster, você deve usar o nome do arquivo OEM*.inf para o driver. Para localizar o nome do arquivo do 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 especificada (Toaster) se chama 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 repositório de driver, juntamente com seus arquivos INF (.pnf) e catalog (.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 Dp_delete DevCon . Se você tentar usar o nome original do arquivo INF, o comando falhará, conforme mostrado na saída de DevCon a seguir.

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