Compartir a través de


Ejemplos de consola de dispositivos (DevCon.exe)

Importante

PnPUtil se distribuye con todas las versiones de Windows y hace uso de las API más confiables y seguras disponibles y se recomienda su uso. Para obtener más información sobre el uso de PnPutil en lugar de devcon, vea Reemplazar DevCon.

Catagorías de ejemplo

En esta sección se proporcionan ejemplos de los siguientes comandos de consola de dispositivos (DevCon.exe):

DevCon HwIDs

Clases DevCon

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon Resources

DevCon Stack

DevCon Status

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon Enable

DevCon Disable

DevCon Update and UpdateNI

DevCon Install

DevCon Remove

DevCon Rescan

DevCon Restart

DevCon Reboot

DevCon SetHwID

DevCon dp_add, dp_deleted, dp_enum

Detalles de ejemplo

Ejemplo 1: Buscar todos los identificadores de hardware

Dado que las operaciones de DevCon usan identificadores e patrones de identificador para identificar dispositivos, un primer paso común en el uso de DevCon es crear un archivo de referencia de identificador de hardware para dispositivos en el equipo.

El siguiente comando usa la operación DevCon HwIDs , que devuelve los identificadores y la descripción del dispositivo. Usa el carácter comodín (*) para representar todos los dispositivos del equipo local.

devcon hwids *

Dado que la salida es larga y se usa repetidamente, guarde la salida en un archivo de texto como referencia.

El siguiente comando usa el carácter comodín (*) para representar todos los dispositivos del equipo. Usa el carácter de redireccionamiento (>) para guardar la salida del comando en el archivo hwids.txt.

devcon hwids * > hwids.txt

Ejemplo 2: Buscar identificadores de hardware mediante un patrón

Para buscar los identificadores de hardware de un dispositivo determinado, escriba el identificador de hardware o el patrón, el identificador o patrón compatibles, el identificador o el patrón de instancia del dispositivo o el nombre de la clase de configuración del dispositivo.

El siguiente comando usa la operación DevCon HwIDs y un patrón para buscar los identificadores de hardware de la unidad de disco de disquete en el equipo. (El usuario supone que el patrón aparece en uno de los identificadores del dispositivo). El comando usa el carácter comodín (*) para representar todos los caracteres que pueden preceder o seguir la palabra "floppy" en cualquiera de los identificadores.

devcon hwids *floppy*

En respuesta, DevCon muestra el identificador de instancia de dispositivo, el identificador de hardware y el identificador compatible de la unidad de disco de disquete en el equipo. Puede usar estos identificadores en los siguientes comandos de DevCon.

FDC\GENERIC_FLOPPY_DRIVE\5&39194F6D&0&0
    Name: Floppy disk drive
    Hardware ID's:
        FDC\GENERIC_FLOPPY_DRIVE
    Compatible ID's:
        GenFloppyDisk
1 matching device(s) found.

En este caso, la frase "floppy" se produce en el identificador de hardware o en el identificador compatible de solo un dispositivo del equipo. Si se produce en el identificador de más de un dispositivo, todos los dispositivos con "disquetes" en sus identificadores aparecen en la salida.

Ejemplo 3: Buscar identificadores de hardware mediante una clase

El siguiente comando usa la operación HwIDs de DevCon y una clase de configuración de dispositivo para buscar los identificadores de hardware de todos los dispositivos en la clase de configuración de dispositivos Ports. El signo igual (=) anterior al nombre de clase indica que es una clase, no un identificador.

devcon hwids =ports

En respuesta, DevCon muestra los identificadores de hardware y los identificadores compatibles de los tres dispositivos de la clase de configuración 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.

Ejemplo 4: Enumerar clases en el equipo local

Dado que las operaciones de DevCon pueden usar la clase de configuración de dispositivos para identificar los dispositivos, resulta útil crear un archivo de referencia de las clases de configuración de dispositivos del dispositivo en el equipo.

El siguiente comando usa la operación DevCon Classes , que devuelve una lista y una descripción de todas las clases del equipo.

devcon classes

Dado que la salida es larga y se usa repetidamente, guarde la salida en un archivo de texto como referencia.

El siguiente comando muestra todas las clases de dispositivo en el equipo. Usa el carácter de redireccionamiento (>) para guardar la salida del comando en el archivo classes.txt.

devcon classes > classes.txt

Ejemplo 6: Enumeración de los dispositivos de una clase de configuración de dispositivo

El siguiente comando usa la operación DevCon ListClass para enumerar los dispositivos de Net, la clase de configuración del dispositivo para los adaptadores de red.

devcon listclass net

En respuesta, DevCon muestra el identificador de instancia de dispositivo y la descripción de cada dispositivo de la clase de configuración 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

Esta pantalla, aunque interesante, no proporciona los identificadores de hardware de los dispositivos en la clase net setup. El siguiente comando usa la operación DevCon HwIDs para enumerar los dispositivos de la clase net setup. En un comando DevCon HwIDs , el nombre de clase va precedido de un signo igual (=) para indicar que es una clase, no un identificador.

devcon hwids =net

La pantalla resultante muestra los dispositivos de la clase Net e incluye el identificador de instancia de dispositivo, los identificadores de hardware y los identificadores compatibles de los dispositivos de la clase .

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.

Ejemplo 7: Enumeración de los dispositivos en varias clases

El siguiente comando usa la operación DevCon ListClass para enumerar los dispositivos en las clases DiskDrive, CDROM y TapeDrive.

devcon listclass diskdrive cdrom tapedrive

En respuesta, DevCon muestra los dispositivos de esas clases.

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

Ejemplo 8: Enumerar todos los archivos de controlador

El siguiente comando usa la operación DevCon DriverFiles para enumerar los nombres de archivo de los controladores que usan los dispositivos en el sistema. El comando usa el carácter comodín (*) para indicar todos los dispositivos del sistema. Dado que la salida es extensa, el comando usa el carácter de redirección (>) para redirigir la salida a un archivo de referencia, driverfiles.txt.

devcon driverfiles * > driverfiles.txt

Ejemplo 9: Enumeración de los archivos de controlador de un dispositivo determinado

El siguiente comando usa la operación DevCon DriverFiles para buscar el controlador de dispositivo que usa el dispositivo del mouse en el equipo local. Identifica el dispositivo por uno de sus identificadores de hardware, HID\Vid_045e&Pid_0039&Rev_0121. El identificador de hardware se incluye entre comillas porque incluye el carácter y el carácter (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

En respuesta, DevCon muestra los dos controladores de dispositivo que admiten el dispositivo del 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.

Ejemplo 10: Enumeración de paquetes de controladores por patrón de identificador de hardware

El siguiente comando usa el comando DevCon DriverNodes y un patrón de identificador para enumerar los nodos de controlador de los dispositivos enumerados por software. Los patrones son útiles para buscar información sobre dispositivos similares que podrían no estar en la misma clase de configuración.

El siguiente comando usa el patrón de identificador sw\* para especificar los dispositivos cuyos identificadores de hardware o identificadores compatibles comienzan por "sw", es decir, dispositivos enumerados por software.

devcon drivernodes sw*

En respuesta, DevCon muestra los nodos de controlador de los dispositivos enumerados por software en el 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.

Ejemplo 11: Enumeración de paquetes de controladores por patrón de identificador de instancia de dispositivo

El comando siguiente usa la operación DevCon DriverNodes para enumerar los paquetes de controladores de todos los dispositivos cuyos identificadores de instancia de dispositivo comienzan con ROOT\MEDIA, es decir, los dispositivos de la subclave del Registro Enum\Root\Media. El comando usa el carácter en (@) para indicar que la frase está en el identificador de instancia del dispositivo.

devcon drivernodes @ROOT\MEDIA*

En respuesta, DevCon muestra los nodos de controlador de los dispositivos cuyo identificador de instancia de dispositivo comienza con "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.

Ejemplo 12: Enumerar recursos de una clase de dispositivos

El siguiente comando usa la operación DevCon Resources para mostrar los recursos asignados a los dispositivos en la clase de configuración de dispositivos Hdc. Esta clase incluye controladores IDE. El signo igual (=) se antepone a "hdc" para indicar que es una clase y no un identificador.

devcon resources =hdc

En respuesta, DevCon enumera los recursos asignados a controladores IDE en el equipo 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.

Ejemplo 13: Enumeración de recursos de dispositivo por identificador

El siguiente comando usa la operación DevCon Resources para enumerar los recursos asignados al temporizador del sistema. El comando usa el identificador de hardware del temporizador del sistema, ACPI\PNP0100, para especificar el dispositivo.

devcon resources *PNP0100

En respuesta, DevCon muestra los recursos del temporizador del sistema.

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

El comando siguiente usa el identificador de instancia de dispositivo del temporizador del sistema en el comando DevCon resources. El carácter at (@) indica que la cadena es un identificador de instancia de dispositivo, no un identificador de hardware ni un identificador compatible.

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

Ejemplo 14: Mostrar la pila de controladores para dispositivos de almacenamiento

El siguiente comando usa la operación DevCon Stack para buscar dispositivos en la clase de configuración volumen y mostrar la pila de controladores esperada para esos dispositivos. El signo igual (=) indica que la cadena es un nombre de clase.

devcon stack =Volume

En respuesta, DevCon muestra la pila esperada para los dispositivos de la clase Volume. Los datos devueltos incluyen el identificador de instancia de dispositivo y la descripción de cada dispositivo, el GUID y el nombre de la clase de configuración del dispositivo, los nombres de los controladores de filtro superior e inferior, y los servicios de control (si los hay).

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.

Ejemplo 15: Buscar la clase de configuración de un dispositivo

La operación DevCon Stack devuelve la clase de configuración de un dispositivo además de los controladores de filtro superior e inferior. Los siguientes comandos buscan la clase de configuración de la interfaz de puerto de impresora mediante la búsqueda de su identificador de instancia de dispositivo y, a continuación, el uso del identificador de instancia del dispositivo para buscar su clase de configuración.

El siguiente comando usa la operación DevCon HwIDs para buscar el identificador de instancia de dispositivo de la interfaz de puerto de impresora mediante "LPT", una frase en el identificador de hardware del puerto de la impresora.

devcon hwids *lpt*

En respuesta, DevCon devuelve el identificador de instancia del dispositivo (que se muestra en negrita) y el identificador de hardware de la interfaz del puerto de la impresora.

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

El siguiente comando usa la operación DevCon Stack para buscar la clase de configuración del dispositivo representado por el identificador de instancia del dispositivo. Un objeto en el carácter (@) identifica el identificador como un identificador de instancia de dispositivo. El identificador se incluye entre comillas porque incluye caracteres de amperado.

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

En respuesta, DevCon muestra la pila de controladores para la interfaz de puerto de impresora, incluida la clase . La pantalla revela que el puerto de la impresora está en la clase 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.

El comando siguiente usa la operación DevCon Stack para mostrar la pila esperada para los dispositivos del controlador de miniport. Busca dispositivos en la clase net setup que tienen "miniport" en su identificador de hardware o id. compatible.

Tenga en cuenta que este comando limita primero la búsqueda a la clase net setup y, a continuación, busca la cadena "miniport". No encuentra dispositivos que no sean los de la clase net setup.

devcon stack =net *miniport*

En respuesta, DevCon muestra la pila esperada para los controladores de miniport.

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.

Ejemplo 17: Mostrar el estado de todos los dispositivos

El siguiente comando usa la operación Estado de DevCon para buscar el estado de todos los dispositivos del equipo local. A continuación, guarda el estado en el archivo de status.txt para el registro o revisión posterior. El comando usa el carácter comodín (*) para representar todos los dispositivos y el carácter de redirección (>) para redirigir la salida al archivo status.txt.

devcon status * > status.txt

Ejemplo 18: Mostrar el estado de un dispositivo por identificador de instancia de dispositivo

La manera más confiable de encontrar el estado de un dispositivo determinado es usar el identificador de instancia de dispositivo del dispositivo.

El comando siguiente usa el identificador de instancia de dispositivo del controlador de E/S en el equipo local en un comando DevCon Status. El comando incluye el identificador de instancia del dispositivo, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. El elemento en el carácter (@) prefijo al identificador identifica la cadena como un identificador de instancia de dispositivo. El identificador debe incluirse entre comillas, ya que incluye caracteres de amperado.

devcon status "@PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00"

En respuesta, DevCon muestra el estado del 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.

El comando siguiente usa la operación Estado de DevCon para mostrar el estado de determinados dispositivos relacionados con el almacenamiento. Busca los siguientes dispositivos:

  • Unidad de disco, GenDisk

  • Unidad de CD-ROM, GenCdRom

  • Unidad de disco disquete, FDC\GENERIC_FLOPPY_DRIVE

  • Volúmenes, STORAGE\Volume

  • Administrador de discos lógicos, ROOT\DMIO

  • Administrador de volúmenes, ROOT\FTDISK

  • Controlador de disco disquete, ACPI\PNP0700

En el comando , cada identificador está separado de los demás por espacios. Tenga en cuenta que GenDisk y GenCdRom son identificadores compatibles, mientras que los otros identificadores son identificadores de hardware.

devcon status GenDisk GenCdRom FDC\GENERIC_FLOPPY_DRIVE STORAGE\Volume ROOT\DMIO ROOT\FTDISK ACPI\PNP0700

En respuesta, DevCon muestra el estado 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.

Ejemplo 20: Buscar dispositivos por patrón de identificador de hardware

El comando siguiente usa la operación DevCon Find para buscar dispositivos del mouse. En concreto, el comando busca en el equipo los dispositivos cuyo identificador de hardware o identificador compatible incluye "mou.", y no encontraría un controlador "moose".

devcon find *mou*

En este caso, DevCon encontró dos dispositivos de mouse.

ROOT\*PNP0F03\1_0_21_0_31_0                                 : Microsoft PS/2 Mouse
ROOT\RDP_MOU\0000                                           : Terminal Server Mouse Driver

Dado que todas las operaciones de visualización de DevCon también encuentran identificadores de hardware, puede usar cualquier operación de visualización para buscar identificadores de hardware. Seleccione la operación en función del contenido que necesite en la salida. Por ejemplo, para buscar los controladores de dispositivo que usan los dispositivos relacionados con el mouse en un equipo local, envíe el siguiente comando.

devcon driverfiles *mou*

En respuesta, DevCon busca los dispositivos y enumera sus controladores.

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.

Ejemplo 21: Buscar dispositivos por identificador de instancia de dispositivo o clase

Los comandos siguientes usan la operación DevCon Find para mostrar todos los dispositivos heredados en el equipo local. Dado que los dispositivos heredados no tienen un identificador de hardware, debe buscarlos por su identificador de instancia de dispositivo (ruta de acceso del Registro), ROOT\LEGACY o su clase de configuración, LegacyDriver.

El primer comando busca controladores heredados por un patrón de identificador de instancia de dispositivo. El patrón id. está precedido por el carácter (@) para indicar un identificador de instancia de dispositivo y seguido del carácter comodín (*) para buscar todos los dispositivos en la subclave ROOT\Legacy.

devcon find @root\legacy*

El segundo comando busca dispositivos heredados buscando todos los dispositivos en la clase LegacyDriver.

devcon find =legacydriver

Ambos comandos generan la misma salida, en este caso, buscando los mismos 27 dispositivos heredados.

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.

Ejemplo 22: Buscar (y buscar todos) dispositivos en una clase de configuración

El siguiente comando usa la operación DevCon FindAll para buscar todos los dispositivos del equipo en la clase net setup. El signo igual (=) indica que Net es una clase de instalación y no un identificador.

devcon findall =net

En respuesta, DevCon enumera los siete dispositivos siguientes en la clase net setup. Los seis primeros son dispositivos de controlador de miniport estándar. El séptimo dispositivo, el adaptador asincrónico de RAS, es un dispositivo enumerado por software (SW\*) que no está instalado hasta que sea necesario.

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.

El comando siguiente compara las operaciones DevCon Find y DevCon FindAll mediante la ejecución de un comando DevCon Find con los mismos parámetros que el comando Anterior DevCon FindAll .

devcon find =net

En respuesta, DevCon enumera los seis dispositivos siguientes en la clase net setup.

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.

De forma predecible, el comando DevCon Find , que devuelve solo los dispositivos instalados actualmente, no enumera el dispositivo enumerado por software porque el dispositivo no está instalado.

Ejemplo 23: Mostrar los controladores de filtro de una clase de instalación

El siguiente comando usa la operación DevCon ClassFilter para mostrar los controladores de filtro superior de la clase de instalación de DiskDrive. Dado que este comando no incluye operadores classfilter, DevCon muestra los controladores de filtro de la clase, pero no los cambia.

devcon classfilter DiskDrive upper

En respuesta, DevCon muestra los controladores de filtro superior de la clase DiskDrive y confirma que no los cambió. En este caso, la pantalla muestra que los dispositivos de la clase de instalación diskDrive usan el controlador de filtro superior PartMgr.sys.

Class filters unchanged.
    PartMgr

Ejemplo 24: Adición de un controlador de filtro a una clase de instalación

El comando siguiente usa la operación DevCon ClassFilter para agregar un filtro ficticio, Disklog.sys, a la lista de controladores de filtro superior para la clase de instalación de DiskDrive.

Este comando usa el operador ClassFilter add-after (+) para cargar el controlador Disklog después del controlador PartMgr para que reciba datos que PartMgr.sys ya haya procesado.

Cuando se inicia el comando, el cursor virtual se coloca antes del primer controlador de filtro. Dado que no está colocado en un controlador determinado, DevCon agrega el controlador Disklog al final de la lista de controladores de filtro.

El comando también usa el parámetro /r , que reinicia el sistema si es necesario para que el filtro de clase cambie en vigor.

devcon /r classfilter DiskDrive upper +Disklog

En respuesta, DevCon muestra los controladores de filtro superior actuales para la clase DiskDrive.

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

Si escribe mal el nombre del controlador o intenta agregar un controlador que no está instalado en el sistema, se produce un error en el comando. DevCon no agrega un controlador a menos que el controlador esté registrado como servicio, es decir, a menos que el controlador tenga una subclave en la subclave del Registro de servicios (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services).

El siguiente comando prueba esta característica de protección. Intenta agregar "Disklgg" (en lugar de "Disklog") a la lista de filtros superiores de la clase DiskDrive. La salida muestra que se produce un error en el comando.

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

Ejemplo 25: Inserción de un controlador de filtro en la lista de clases

El siguiente comando usa la operación DevCon ClassFilter para agregar un controlador de filtro ficticio, MyFilter.sys, a la lista de controladores de filtro superior para la clase de instalación de DiskDrive. El comando coloca MyFilter.sys entre PartMgr.sys y Disklog.sys en el orden de carga.

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

En la lista siguiente se muestran los controladores de filtro de la clase DiskDrive antes de enviar el comando.

    PartMgr
    Disklog

El primer subcomando, @Disklog, usa el operador de posicionamiento (@) para colocar el cursor virtual en el controlador de filtro Disklog. El segundo subcomando, -MyFilter, usa el operador add-before (-) para agregar MyFilter.sys antes de Disklog.sys.

El comando también usa el parámetro /r , que reinicia el sistema si es necesario para que el filtro de clase cambie en vigor.

El operador de posicionamiento es esencial en este ejemplo. Antes de que DevCon procese los subcomandos de filtro de clases, el cursor virtual se encuentra al principio de la lista y no se coloca en ningún controlador de filtro. Si usa el operador add-before (+) cuando el cursor no está situado en un controlador, DevCon agrega el controlador al principio de la lista. Si usa el operador add-after (-) cuando el cursor no está colocado en un controlador, agrega el controlador al final de la lista.

En respuesta, DevCon muestra los controladores de filtro superior actuales para la clase DiskDrive.

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

También puede usar el siguiente comando para agregar el controlador MyFilter y colocarlo entre PartMgr y Disklog. En este ejemplo, el primer subcomando, @PartMgr, coloca el cursor virtual en el controlador de filtro PartMgr. El segundo subcomando, +MyFilter, usa el operador add-after (+) para agregar MyFilter.sys después de PartMgr.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Ejemplo 26: Reemplazar un controlador de filtro

El comando siguiente usa la operación DevCon ClassFilter para reemplazar la copia original de MyFilter.sys por una versión nueva y mejorada, MyNewFilter.sys, en la lista de controladores de filtro para la clase de instalación de DiskDrive.

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

En la lista siguiente se muestran los controladores de filtro de la clase DiskDrive antes de enviar el comando.

    PartMgr
    MyFilter
    Disklog

El primer subcomando usa el operador delete (!) para eliminar MyFilter de la lista de controladores de filtro superior para la clase DiskDrive. (No afecta al archivo MyFilter.sys en el directorio C:\Windows\System32\Drivers).

El segundo subcomando usa el operador add-after (+) para colocar el nuevo controlador de filtro en la posición ocupada por el controlador eliminado. Dado que el operador delete deja el cursor en la posición ocupada por el filtro eliminado, los operadores add-before (-) y add-after (+) tienen el mismo efecto.

El comando también usa el parámetro /r , que reinicia el sistema si es necesario para que el filtro de clase cambie en vigor.

En respuesta, DevCon muestra la nueva configuración de filtro de clase para la clase DiskDrive.

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

Ejemplo 27: Cambiar el orden de los controladores de filtro

El siguiente comando usa la operación DevCon ClassFilter para cambiar el orden de los controladores de filtro de la clase de instalación de DiskDrive. En concreto, invierte el orden de los controladores de filtro segundo y tercero.

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

En la lista siguiente se muestran los controladores de filtro de la clase DiskDrive antes de enviar el comando. También muestra el resultado previsto del comando.

Antes Después
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

El primer subcomando usa el operador delete (!) para eliminar Disklog de la lista. El segundo subcomando usa el operador start (=) para volver al cursor virtual a la posición inicial y, a continuación, usa el operador de posicionamiento (@) para colocar el cursor en el controlador PartMgr. El operador start es necesario porque el cursor virtual solo avanza a través de la lista. El subcomando final usa el operador add-after (+) para agregar Disklog después de PartMgr.

En respuesta, DevCon muestra la nueva configuración de filtro de clase para la clase DiskDrive.

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

Ejemplo 28: Habilitar un dispositivo determinado

El siguiente comando usa la operación DevCon Enable para habilitar un controlador de interrupción programable que se había deshabilitado para corregir un problema del sistema. Dado que el identificador de hardware del controlador *PNP0000 incluye un asterisco, el comando usa el carácter de comilla simple (') para dirigir DevCon para encontrar el identificador de hardware exactamente tal como se especifica en el comando. De lo contrario, el asterisco se interpretaría como un carácter comodín.

devcon enable '*PNP0000

En respuesta, DevCon muestra el identificador de instancia del dispositivo y explica que debe reiniciar el sistema para habilitar el 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.

Puede responder reiniciando el sistema, ya sea manualmente o mediante la operación de reinicio de DevCon.

El comando siguiente agrega el parámetro /r al comando anterior. El parámetro /r reinicia el sistema solo si es necesario reiniciar para completar una operación.

devcon /r enable '*PNP0000

En respuesta, DevCon habilita el dispositivo y, a continuación, reinicia el sistema para que la habilitación sea efectiva.

Cuando se inicie el sistema, use un comando de estado de DevCon para confirmar que el dispositivo está habilitado.

devcon status '*PNP0000

ACPI\PNP0000\4&B4063F4&0
    Name: Programmable interrupt controller
    Driver is running.

Ejemplo 29: Habilitar dispositivos por clase

El siguiente comando habilita todos los dispositivos de impresora del equipo especificando la clase de instalación Printer en un comando DevCon Enable. El comando incluye el parámetro /r , que reinicia el sistema si es necesario para que la habilitación sea efectiva.

devcon /r enable =Printer

En respuesta, DevCon muestra el identificador de instancia de dispositivo de la impresora que encontró en la clase Printer e informa de que está habilitado. Aunque el comando incluía el parámetro /r , el sistema no se reiniciaba porque no se requería un reinicio para habilitar la impresora.

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

Ejemplo 30: Deshabilitar dispositivos por un patrón de identificador

El comando siguiente usa la operación DevCon Disable para deshabilitar los dispositivos USB en el equipo local. Identifica los dispositivos mediante un patrón de identificador de hardware (USB*). Este patrón coincidirá con cualquier dispositivo cuyo identificador de hardware o id. compatible comience por "USB". El comando incluye el parámetro /r , que reinicia el sistema si es necesario para que la deshabilitación sea efectiva.

Nota Antes de usar un patrón de identificador para deshabilitar un dispositivo, determine qué dispositivos se verán afectados. Para ello, use el patrón en un comando para mostrar, como devcon status USB\* o devcon hwids USB\*.

devcon /r disable USB*

En respuesta, DevCon muestra los identificadores de instancia de dispositivo de los dispositivos USB e informa de que están deshabilitados. Aunque el comando incluía el parámetro /r , el sistema no se reiniciaba porque no se requería reiniciar para deshabilitar los 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.

Ejemplo 31: Deshabilitar dispositivos por identificador de instancia de dispositivo

El comando siguiente usa la operación DevCon Disable para deshabilitar los dispositivos USB en el equipo local. Este comando identifica los dispositivos por sus identificadores de instancia de dispositivo como se indica en el carácter (@) que precede a cada identificador. Cada identificador de instancia de dispositivo está separado de los demás por un espacio.

Además, dado que los identificadores de instancia del dispositivo incluyen el carácter y comercial (&), se incluyen entre comillas. El comando incluye el parámetro /r , que reinicia el sistema si es necesario para que la deshabilitación sea efectiva.

devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"

En respuesta, DevCon muestra los identificadores de instancia de dispositivo de los dispositivos USB e informa de que están deshabilitados. Aunque el comando incluía el parámetro /r , el sistema no se reiniciaba porque no se requería reiniciar para deshabilitar los 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.

Ejemplo 32: Actualización del controlador para los puertos de comunicación

El siguiente comando usa la operación DevCon Update para reemplazar el controlador de dispositivo actual para los puertos de comunicación en el sistema por un controlador de prueba especificado en el archivo test.inf. El comando solo afecta a los dispositivos cuyo identificador de hardware completo es *PNP0501 (incluido el asterisco).

Puede usar este comando para reemplazar controladores firmados en el sistema por controladores alternativos para probar o solucionar problemas, o para asociar los dispositivos a la versión más reciente de los mismos controladores.

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

En respuesta, DevCon muestra una advertencia de instalación de hardware que explica que el controlador no ha superado las pruebas de logotipo de Windows. Si selecciona el botón Continuar de todos modos en el cuadro de diálogo, la instalación continúa.

A continuación, DevCon muestra el siguiente mensaje de operación correcta.

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

También puede usar la operación UpdateNI de DevCon, la versión no interactiva de la operación de actualización de DevCon, para actualizar controladores. La operación UpdateNI de DevCon es idéntica a la operación de actualización de DevCon, salvo que suprime todas las solicitudes de usuario que requieren una respuesta y asume la respuesta predeterminada al mensaje.

El comando siguiente usa la operación UpdateNI de DevCon para instalar el controlador de prueba.

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

En este caso, DevCon no muestra la advertencia instalación de hardware. En su lugar, supone la respuesta predeterminada, Detener instalación. Como resultado, DevCon no puede actualizar los controladores y muestra un mensaje de error.

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

Ejemplo 33: Instalación de un dispositivo

El comando siguiente usa la operación DevCon Install para instalar un dispositivo de teclado en el equipo local. El comando incluye la ruta de acceso completa al archivo INF para el dispositivo (keyboard.inf) y un identificador de hardware (*PNP030b).

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

En respuesta, DevCon informa de que ha instalado el dispositivo, es decir, ha creado un nodo de dispositivo para el nuevo dispositivo y ha actualizado los archivos de controlador para el 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.

Ejemplo 34: Instalación de un dispositivo mediante la instalación desatendida

En el ejemplo siguiente se muestra cómo instalar el adaptador de bucle invertido de Microsoft durante una instalación desatendida de Microsoft Windows XP.

Para instalar este dispositivo durante una instalación desatendida, comience agregando los siguientes archivos a un disco de disquete: devcon.exe y netloop.inf (C:\Windows\inf\netloop.inf).

A continuación, en la sección [GUIRunOnce] del archivo de instalación desatendida, agregue el siguiente comando DevCon:

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

Este comando identifica el adaptador de bucle invertido mediante su identificador de hardware, *MSLOOP. El carácter de comilla simple anterior a "*MSLOOP" indica a DevCon que interprete la cadena literalmente, es decir, para interpretar el asterisco como parte del identificador de hardware, no como carácter comodín.

El comando también especifica que DevCon usa el archivo Netloop.inf (en el disco de disquete) en la instalación. El parámetro /r reinicia el equipo solo si es necesario reiniciar para completar la instalación.

Por último, agregue opciones de configuración de red al archivo de instalación desatendida y ejecute la instalación desatendida.

Ejemplo 35: Eliminación de dispositivos por patrón de identificador de instancia de dispositivo

El siguiente comando usa la operación Quitar de DevCon para quitar todos los dispositivos USB del equipo. Identifica los dispositivos mediante un patrón de identificador de instancia de dispositivo que coincide con cualquier identificador de instancia de dispositivo (ruta de acceso del Registro) que comience con la cadena "USB\". El elemento at character (@) distingue el identificador de instancia del dispositivo de un identificador de hardware o un identificador compatible. El comando también incluye el parámetro /r que reinicia el sistema si es necesario para que el procedimiento remove sea efectivo.

Advertencia

Antes de quitar cualquier dispositivo mediante un patrón, determine qué dispositivos se ven afectados. Para ello, use el patrón en un comando para mostrar, como devcon status @usb\* o devcon hwids @usb\*.

devcon /r remove @usb\*

En respuesta, DevCon muestra el identificador de instancia de dispositivo de los dispositivos que quitó.

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.

Ejemplo 36: Eliminación de un dispositivo de red determinado

El siguiente comando usa la operación Quitar de DevCon para desinstalar el controlador de miniport de NDISWAN del equipo local. El comando especifica la clase Net y, a continuación, refina la búsqueda especificando dispositivos en la clase cuyo identificador de hardware o identificador compatible incluya "ndiswan". El comando también incluye el parámetro /r , que reinicia el sistema si es necesario reiniciar para que el procedimiento de eliminación sea efectivo.

Advertencia Antes de quitar cualquier dispositivo mediante un patrón, determine qué dispositivos se verán afectados. Para ello, use el patrón en un comando para mostrar, como devcon status =net *ndiswan o devcon hwids =net *ndiswan*.

devcon /r remove =net *ndiswan*

En respuesta, DevCon muestra el identificador de instancia de dispositivo del dispositivo que quitó.

ROOT\MS_NDISWANIP\0000 : Removed 1 device(s) removed.

Ejemplo 37: Examen del equipo para nuevos dispositivos

El siguiente comando usa la operación DevCon Rescan para examinar el equipo local de los nuevos dispositivos.

devcon rescan

En respuesta, DevCon informa de que examinó el sistema, pero no encontró ningún dispositivo nuevo.

Scanning for new hardware.
Scanning completed.

Ejemplo 38: Reiniciar un dispositivo

El siguiente comando usa la operación DevCon Restart para reiniciar el adaptador de bucle invertido en el equipo local. El comando limita la búsqueda a la clase net setup y, dentro de esa clase, especifica el identificador de instancia del dispositivo del adaptador de bucle invertido, @'ROOT\*MSLOOP\0000. El objeto at (@) identifica la cadena como un identificador de instancia de dispositivo. El carácter de comilla simple ('), que solicita una búsqueda literal, impide que DevCon interprete el asterisco en el identificador como carácter comodín.

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

En respuesta, DevCon muestra el identificador de instancia del dispositivo e informa del resultado.

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

Ejemplo 39: Reinicio del equipo local

El siguiente comando usa la operación DevCon Reboot para reiniciar el sistema operativo en el equipo local y asociar el reinicio a una instalación de hardware. A diferencia del parámetro /r , la operación de reinicio de DevCon no depende del código devuelto de otra operación.

Puede incluir este comando en scripts y archivos por lotes que requieren que el sistema se reinicie.

devcon reboot

En respuesta, DevCon muestra un mensaje que indica que está reiniciando el equipo (Reinicio de la máquina local).

DevCon usa la función ExitWindowsEx estándar para reiniciar. Si el usuario tiene archivos abiertos en el equipo o un programa no se cerrará, el sistema no se reiniciará hasta que el usuario haya respondido a las indicaciones del sistema para cerrar los archivos o finalizar el proceso.

Ejemplo 40: Asignación de un identificador de hardware a un dispositivo heredado

El siguiente comando usa la operación SetHwID de DevCon para asignar el identificador de hardware, pitido, al dispositivo de pitido heredado.

El comando usa el identificador de instancia del dispositivo, ROOT\LEGACY_BEEP\0000, porque el dispositivo heredado de pitido no tiene identificadores de hardware ni identificadores compatibles. Usa el objeto en el carácter (@) para indicar que la cadena es un identificador de instancia de dispositivo.

El comando no usa ningún parámetro de símbolo para colocar el identificador. De forma predeterminada, DevCon agrega nuevos identificadores de hardware al final de una lista de identificadores de hardware. En este caso, dado que el dispositivo no tiene otros identificadores de hardware, la colocación es irrelevante.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

En respuesta, DevCon muestra un mensaje que indica que se agrega pitido a la lista de identificadores de hardware del dispositivo. También muestra la lista de identificadores de hardware resultante. En este caso, solo hay un identificador de hardware en la lista.

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

Ejemplo 41: Agregar un identificador de hardware a todos los dispositivos heredados

El siguiente comando usa la operación SetHwID de DevCon para agregar el identificador de hardware, heredado, a la lista de identificadores de hardware para todos los dispositivos heredados.

El comando usa el - parámetro symbol para agregar el nuevo identificador de hardware al final de la lista de identificadores de hardware del dispositivo, en caso de que se haya creado un identificador de hardware preferido para uno de los dispositivos. También usa un patrón de identificador de instancia de dispositivo, @ROOT\LEGACY\*, para identificar los dispositivos heredados en el equipo, es decir, todos los dispositivos cuyo identificador de instancia de dispositivo comienza por ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

En respuesta, DevCon muestra las listas de identificadores de hardware resultantes para todos los dispositivos afectados.

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

Después de asignar el mismo identificador de hardware a un grupo de dispositivos, puede usar las otras operaciones de DevCon para ver y cambiar los dispositivos en un solo comando.

Por ejemplo, el siguiente comando muestra el estado de todos los dispositivos heredados.

devcon status legacy

Ejemplo 42: Eliminación de un identificador de hardware de todos los dispositivos heredados

El siguiente comando usa la operación SetHwID de DevCon para eliminar el identificador de hardware, heredado, de la lista de identificadores de hardware para todos los dispositivos heredados.

El comando usa el identificador de hardware, heredado, para identificar todos los dispositivos que tienen ese identificador de hardware. A continuación, usa el parámetro de símbolo ! para eliminar el identificador de hardware heredado .

devcon sethwid legacy := !legacy

En respuesta, DevCon muestra las listas de identificadores de hardware resultantes para todos los dispositivos afectados.

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

Ejemplo 43: Agregar, eliminar y reemplazar identificadores de hardware

En la siguiente serie de ejemplos se muestra cómo usar las diversas características de la operación SetHwID de DevCon.

Esta serie usa un dispositivo ficticio, DeviceX, con el identificador de instancia del dispositivo, ROOT\DeviceX\0000. Antes de usar DevCon, el dispositivo tenía la siguiente lista de identificadores de hardware:

Hw3 Hw4

El siguiente comando usa el + símbolo para agregar Hw1 y Hw2 al principio de una lista de identificadores de hardware para DeviceX. Dado que Hw2 ya aparece en la lista, se mueve, no se agrega. El comando identifica el dispositivo por su identificador de instancia de dispositivo, como se indica en el carácter (@) anterior al identificador.

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

En respuesta, DevCon muestra la nueva lista de identificadores de hardware para el dispositivo. Tenga en cuenta que Hw1 y Hw2 aparecen al principio de la lista en el orden especificado.

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

Además, DevCon informa de que modificó una lista de identificadores de hardware, es decir, la lista de identificadores de hardware de un dispositivo.

El siguiente comando usa el símbolo ! para eliminar el identificador de hardware Hw1 . A continuación, enumera el identificador de hardware, Hw5, sin un parámetro de símbolo. Sin parámetros de símbolos, SetHwID agrega el identificador de hardware al final de la lista de identificadores de hardware del dispositivo.

Este comando muestra que, a diferencia de los demás parámetros de símbolo para la operación SetHwID de DevCon, el símbolo ! solo se aplica al identificador de hardware que prefijo.

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

En respuesta, DevCon muestra la lista de identificadores de hardware resultante para DeviceX.

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

El siguiente comando usa el parámetro = para reemplazar todos los identificadores de hardware de la lista de DeviceX por un identificador de hardware único, DevX.

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

En respuesta, DevCon muestra la lista de identificadores de hardware resultante para DeviceX.

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

El mensaje correcto indica que DevCon modificó el identificador de hardware de un dispositivo.

Ejemplo 44: Actualización forzada de HAL

En el ejemplo siguiente se muestra cómo usar DevCon para actualizar hal en el equipo. En este ejemplo, un evaluador quiere reemplazar el APIC HAL del uniprocesador APCI que es más adecuado para el equipo con un APIC HAL de APCI multiprocesador con fines de prueba.

El primer comando usa la operación SetHwID de DevCon para cambiar el identificador de hardware del HAL de acpiapic_up, el identificador de hardware de las LISTAS de alta disponibilidad del uniprocesador, a acpiapic_mp, el identificador de hardware de las HAL de varios procesadores.

Debe cambiar el identificador de hardware porque el archivo INF para HAL incluye controladores para los hals de un solo procesador y multiprocesador. El sistema selecciona el controlador más adecuado del archivo INF en función del identificador de hardware del dispositivo. Si no cambia el identificador de hardware, el comando DevCon Update simplemente volvería a instalar el controlador HAL del uniprocesador.

En el comando siguiente, el comando identifica el HAL por su identificador de instancia, ROOT\ACPI_HAL\0000, como se indica en el @ carácter anterior al identificador. El comando usa el + carácter para hacer acpiapic_mp el primer identificador de hardware de la lista de HAL. A continuación, usa el carácter ! para eliminar el acpiapic_up id. de hardware de la lista de identificadores para HAL.

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

En respuesta, DevCon muestra la siguiente nueva lista de identificadores de hardware para HAL.

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

El comando siguiente usa la operación DevCon Update para actualizar el controlador para HAL.

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

A continuación, DevCon muestra el siguiente mensaje de operación correcta.

Updating drivers for acpiapic_mp from c:\windows\inf\hal.inf.
Drivers updated successfully.

Ejemplo 45: Agregar y quitar paquetes de controladores

En los ejemplos siguientes se muestra cómo usar DevCon para agregar, eliminar y mostrar paquetes de controladores de terceros (OEM) en el almacén de controladores.

El primer comando, un comando DevCon Dp_add , copia el archivo INF para el controlador de ejemplo toaster del WDK en el almacén de controladores, es decir, en el directorio %Windir%\inf. El comando incluye la ruta de acceso completa al archivo INF para el controlador de ejemplo de Toaster.

Este comando está diseñado para dispositivos y controladores de terceros (OEM), pero puede usar el ejemplo de toaster para probar los comandos.

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

En respuesta, DevCon informa de que agregó el archivo INF del sistema al almacén de controladores y lo llamó Oem2.inf.

Driver Package 'oem2.inf' added.

Antes de copiarlo en el almacén de controladores, Windows compara la versión binaria del archivo INF con las versiones binarias de los archivos INF en el almacén de controladores para asegurarse de que no está agregando un archivo duplicado. Por ejemplo, si repite el comando para agregar Toaster.inf al almacén de controladores, DevCon no crea un nuevo archivo OEM*.inf. Solo notifica el nombre del archivo existente, como se muestra en la siguiente salida de DevCon.

devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.

devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.

Para quitar el paquete de controladores para el controlador toaster del almacén de controladores, debe usar el nombre de archivo OEM*.inf para el controlador. Para buscar el nombre de archivo del controlador, use el comando DevCon Dp_enum.

El siguiente comando enumera todos los paquetes de controladores OEM y algunas de sus propiedades.

devcon dp_enum

En respuesta, DevCon genera la siguiente pantalla:

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

Esta información indica que el paquete de controladores proporcionado por Microsoft con la clase de dispositivo no especificada (Toaster) se denomina OEM2.inf. Puede usar esta información para eliminar el paquete de controladores asociado al archivo.

El siguiente comando elimina el archivo OEM2.inf del almacén de controladores, junto con sus archivos INF (.pnf) y catálogo (.cat) precompilados asociados. El comando usa el nombre de archivo OEM*.inf.

devcon dp_delete oem2.inf

En respuesta, DevCon muestra un mensaje que indica que el comando se realizó correctamente:

Driver Package 'oem2.inf' deleted.

El nombre de archivo OEM*.inf es necesario en el comando de Dp_delete DevCon. Si intenta usar el nombre original del archivo INF, se produce un error en el comando, como se muestra en la siguiente salida de DevCon.

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