Partager via


Exemples de console d’appareil (DevCon.exe)

This article provides examples to demonstrate various Device Console (DevCon.exe) commands, including hardware identifiers (IDs), classes, driver files, installing and scanning, and more.

Important

Administrators are recommended to use the PnPUtil command line tool rather than the Device Console sample. L’outil PnPUtil est fourni avec chaque version de Windows et utilise les API les plus fiables et sécurisées disponibles. Pour plus d’informations sur l’utilisation de PnPutil au lieu de la console d’appareil, consultez Remplacement de la console d’appareil.

Example categories

The article provides examples for the following categories of Device Console commands, or DevCon for short.

Category Examples
HwIDs Exemple 1 : Rechercher tous les ID matériels
Exemple 2 : Rechercher des ID matériels à l’aide d’un modèle
Exemple 3 : Rechercher des ID matériels à l’aide d’une classe
Classes Exemple 4 : Répertorier les classes sur l’ordinateur local
ListClass Exemple 6 : Répertorier les appareils d’une classe
de configuration d’appareilExemple 7 : Répertorier les appareils dans plusieurs classes
DriverFiles Exemple 8 : Répertorier tous les fichiers
de pilotesExemple 9 : Répertorier les fichiers de pilotes d’un appareil particulier
DriverNodes Exemple 10 : Répertorier les packages de pilotes par modèle
d’ID matérielExemple 11 : Répertorier les packages de pilotes par modèle d’ID d’instance d’appareil
Resources Exemple 12 : Répertorier les ressources d’une classe d’appareils
Exemple 13 : Répertorier les ressources d’un appareil par ID
Stack Exemple 14 : Afficher la pile des pilotes pour les périphériques
de stockageExemple 15 : Rechercher la classe d’installation d’un appareil
Exemple 16 : Afficher la pile pour les appareils associés
Status Exemple 17 : Afficher l’état de tous les appareils sur l’ordinateur
localExemple 18 : Afficher l’état d’un appareil par ID
d’instance d’appareilExemple 19 : Afficher l’état des appareils associés
Find Exemple 20 : Rechercher des appareils par modèle
d’ID matérielExemple 21 : Rechercher des appareils par ID ou classe d’instance d’appareil
FindAll Exemple 22 : Trouver (et trouver tous) les appareils dans une classe d'installation
ClassFilter Exemple 23 : Afficher les pilotes de filtre pour une classe
de configurationExemple 24 : Ajouter un pilote de filtre à une classe
de configurationExemple 25 : Insérer un pilote de filtre dans la liste
des classesExemple 26 : Remplacer un pilote
de filtreExemple 27 : Modifier l’ordre des pilotes de filtre
Enable Exemple 28 : Activer un appareil
particulierExemple 29 : Activer les appareils par classe
Disable Exemple 30 : Désactiver les appareils par un modèle
d’IDExemple 31 : Désactiver les appareils par ID d’instance d’appareil
Mettre à jour et UpdateNI Exemple 32 : Mettre à jour le pilote pour les ports
de communicationExemple 44 : Mettre à jour de force la couche d’abstraction matérielle (HAL)
Install Exemple 33 : Installer un appareil
Exemple 34 : Installer un appareil à l’aide de l’installation sans assistance
Remove Exemple 35 : Supprimer des appareils par modèle d’ID d’instance d’appareil
Exemple 36 : Supprimer un périphérique réseau particulier
Rescan Exemple 37 : Analyser l’ordinateur pour les nouveaux appareils
Restart Exemple 38 : Redémarrer un appareil
Reboot Exemple 39 : Redémarrer l’ordinateur local
SetHwID Exemple 40 : Affecter un ID matériel à un appareil
héritéExemple 41 : Ajouter un ID matériel à tous les appareils hérités
Exemple 42 : Supprimer un ID matériel de tous les appareils hérités
Exemple 43 : Ajouter, supprimer et remplacer des ID matériels
Exemple 44 : Mettre à jour de force la hal
dp_add, dp_deleted, dp_enum Exemple 45 : Ajouter et supprimer des packages de pilotes

Example details

Les exemples DevCon complets sont fournis dans les sections suivantes.

Exemple 1 : Rechercher tous les ID matériels

Les opérations DevCon utilisent des ID et des modèles d’ID pour identifier les appareils. Par conséquent, une première étape courante pour l’utilisation de DevCon consiste à créer un fichier de référence d’ID matériel pour les appareils sur l’ordinateur.

The following command uses the DevCon HwIDs operation, which returns the IDs and the device description. La commande utilise le caractère générique astérisque (*) pour représenter tous les appareils sur l’ordinateur local.

devcon hwids *

Étant donné que la sortie est longue et utilisée à plusieurs reprises, enregistrez la sortie dans un fichier texte pour référence.

La commande suivante étend la commande précédente avec le caractère de redirection (>). The redirection saves the command output in the specified file, hwids.txt.

devcon hwids * > hwids.txt

Exemple 2 : Rechercher des ID matériels à l’aide d’un modèle

Pour rechercher les ID matériels d’un appareil particulier, entrez l’une des valeurs suivantes avec la commande :

  • ID ou modèle matériel
  • ID ou modèle compatible
  • ID ou modèle d’instance d’appareil
  • Nom de la classe d’installation de l’appareil

The following command uses the DevCon HwIDs operation and a pattern to find the hardware IDs of the floppy disk drive on the computer. (L’utilisateur part du principe que le modèle apparaît dans l’un des ID d’appareil.) La commande utilise le caractère générique (*) pour représenter tous les caractères qui peuvent précéder ou suivre le mot floppy dans l’un des ID.

devcon hwids *floppy*

En réponse, DevCon affiche l’ID d’instance de l’appareil, l’ID matériel et l’ID compatible du lecteur de disque de floppy sur l’ordinateur. Vous pouvez utiliser ces ID dans les commandes DevCon suivantes.

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.

Dans cet exemple, l’expression « floppy » se produit dans l’ID matériel ou l’ID compatible d’un seul appareil sur l’ordinateur. Si l’expression se produit dans l’ID de plusieurs appareils, tous les appareils avec l’expression « floppy » dans leurs ID apparaissent dans la sortie.

Exemple 3 : Rechercher des ID matériels à l’aide d’une classe

The following command uses the DevCon HwIDs operation and a device setup class to find the hardware IDs of all devices in the Ports device setup class. Le symbole égal (=) qui précède le nom de classe indique que la valeur spécifiée est une classe et non un ID.

devcon hwids =ports

En réponse, DevCon affiche les ID matériels et les ID compatibles des trois appareils de la classe d’installation 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.

Exemple 4 : Répertorier les classes sur l’ordinateur local

Étant donné que les opérations DevCon peuvent utiliser la classe de configuration d’appareil pour identifier les appareils, il est utile de créer un fichier de référence des classes d’installation d’appareils sur l’ordinateur.

The following command uses the DevCon Classes operation, which returns a list and description of all classes on the computer.

devcon classes

Étant donné que la sortie est longue et utilisée à plusieurs reprises, enregistrez la sortie dans un fichier texte pour référence.

La commande suivante affiche toutes les classes d’appareil sur l’ordinateur. It uses the redirection character (>) to save the command output in the specified file, classes.txt.

devcon classes > classes.txt

Exemple 6 : Répertorier les appareils d’une classe de configuration d’appareil

The following command uses the DevCon ListClass operation to list the devices in Net, the device setup class for network adapters.

devcon listclass net

En réponse, DevCon affiche l’ID d’instance de l’appareil et la description de chaque appareil dans la classe de configuration 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

Bien que la réponse de commande soit intéressante, elle ne fournit pas les ID matériels des appareils dans la classe d’installation Net.

The following command uses the DevCon HwIDs operation to list the devices in the Net setup class. In a DevCon HwIDs command, the equals symbol (=) precedes the value to indicate that the value is a class and not an ID.

devcon hwids =net

L’affichage obtenu répertorie les appareils de la classe Net et inclut l’ID d’instance d’appareil, les ID matériels et les ID compatibles des appareils de la 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.

Exemple 7 : Répertorier les appareils dans plusieurs classes

The following command uses the DevCon ListClass operation to list the devices in the DiskDrive, CDROM, and TapeDrive classes.

devcon listclass diskdrive cdrom tapedrive

En réponse, DevCon affiche les appareils de ces 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).

Exemple 8 : Répertorier tous les fichiers de pilote

The following command uses the DevCon DriverFiles operation to list the file names of drivers that devices on the system use. La commande utilise le caractère générique (*) pour représenter tous les appareils sur le système. Because the output is extensive, it uses the redirection character (>) to save the command output in the specified file, driverfiles.txt.

devcon driverfiles * > driverfiles.txt

Exemple 9 : Répertorier les fichiers de pilotes d’un appareil particulier

The following command uses the DevCon DriverFiles operation to search for the device driver used by the mouse device on the local computer. La commande identifie l’appareil par l’un de ses ID matériels. HID\Vid_045e&Pid_0039&Rev_0121 L’ID matériel est placé entre guillemets (" ") car il inclut le symbole ampersand (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

En réponse, DevCon affiche les deux pilotes de périphérique qui prennent en charge le périphérique de la souris :

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.

Exemple 10 : Répertorier les packages de pilotes par modèle d’ID matériel

The following command uses the DevCon DriverNodes command and an ID pattern to list the driver nodes of software-enumerated devices. Les modèles sont utiles pour trouver des informations sur des appareils similaires qui peuvent ne pas se trouver dans la même classe d’installation.

The following command uses the ID pattern sw* to specify devices with hardware IDs or compatible IDs that begin with "sw" for software-enumerated devices.

devcon drivernodes sw*

En réponse, DevCon affiche les nœuds de pilote des appareils énumérés par logiciel sur le système :

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.

Exemple 11 : Répertorier les packages de pilotes par modèle d’ID d’instance d’appareil

The following command uses the DevCon DriverNodes operation to list the driver packages of all devices with device instance IDs that begin with ROOT\MEDIA for devices in the Enum\Root\Media registry subkey. The command uses the at symbol (@) to indicate that the phrase is in the device instance ID.

devcon drivernodes @ROOT\MEDIA*

En réponse, DevCon affiche les nœuds de pilotes d’appareils avec un ID d’instance d’appareil qui commence par 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.

Exemple 12 : Répertorier les ressources d’une classe d’appareils

The following command uses the DevCon Resources operation to display the resources allocated to devices in the Hdc device setup class. Cette classe inclut des contrôleurs IDE. La syntaxe précède le nom hdc de classe avec le symbole égal (=) pour indiquer que la valeur spécifiée est une classe et non un ID.

devcon resources =hdc

En réponse, DevCon répertorie les ressources allouées aux contrôleurs IDE sur l’ordinateur 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.

Exemple 13 : Répertorier les ressources de l’appareil par ID

The following command uses the DevCon Resources operation to list the resources allocated to the system timer. La commande utilise l’ID matériel du minuteur système, ACPI\PNP0100pour spécifier l’appareil.

devcon resources *PNP0100

En réponse, DevCon affiche les ressources du minuteur système :

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

La commande suivante utilise l’ID d’instance de l’appareil du minuteur système dans la commande DevCon resources . The command uses the at symbol (@) to indicate that the string is a device instance ID and not a hardware ID or compatible ID.

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

Exemple 14 : Afficher la pile des pilotes pour les périphériques de stockage

The following command uses the DevCon Stack operation to search for devices in the Volume setup class and display the expected driver stack for those devices. Le symbole égal (=) précède la chaîne pour indiquer que la valeur est une classe et non un ID.

devcon stack =Volume

En réponse, DevCon affiche la pile attendue pour les appareils de la classe Volume. Les données retournées incluent les informations suivantes :

  • ID d’instance d’appareil et description de chaque appareil
  • GUID et nom de la classe d’installation de l’appareil
  • Noms des pilotes de filtre supérieur et inférieur
  • Contrôle des services (le cas échéant)
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.

Exemple 15 : Rechercher la classe d’installation d’un appareil

The DevCon Stack operation returns the setup class of a device in addition to the upper and lower filter drivers. Les commandes suivantes recherchent la classe d’installation de l’interface de port d’imprimante en localisant son ID d’instance d’appareil, puis en utilisant l’ID d’instance de l’appareil pour trouver sa classe d’installation.

The following command uses the DevCon HwIDs operation to find the device instance ID of the printer port interface. Il recherche l’expression « LPT » dans l’ID matériel du port d’imprimante :

devcon hwids *lpt*

En réponse, DevCon retourne l’ID d’instance de l’appareil (affiché en gras) et l’ID matériel de l’interface de port d’imprimante :

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

The next command uses the DevCon Stack operation to find the device setup class of the device represented by the device instance ID. The command uses the at symbol (@) to identify the ID as a device instance ID. L’ID est placé entre guillemets (" ") car il inclut le symbole ampersand (&).

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

En réponse, DevCon affiche la pile des pilotes pour l’interface de port d’imprimante, y compris la classe. L’affichage indique que le port d’imprimante se trouve dans la 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.

The following command uses the DevCon Stack operation to display the expected stack for miniport driver devices. Il recherche les appareils de la classe de configuration réseau qui ont « miniport » dans leur ID matériel ou leur ID compatible.

Cette commande limite d’abord la recherche à la classe d’installation net, puis recherche la chaîne « miniport ». Il ne trouve pas d’appareils autres que les éléments de la classe de configuration Net.

devcon stack =net *miniport*

En réponse, DevCon affiche la pile attendue pour les pilotes 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.

Exemple 17 : Afficher l’état de tous les appareils

The following command uses the DevCon Status operation to find the status of all devices on the local computer. It then saves the status in the status.txt file for logging or later review. La commande utilise le caractère générique (*) pour représenter tous les appareils. It uses the redirection character (>) to save the command output in the specified file, status.txt.

devcon status * > status.txt

Exemple 18 : Afficher l’état d’un appareil par ID d’instance d’appareil

La façon la plus fiable de trouver l’état d’un appareil particulier consiste à utiliser l’ID d’instance de l’appareil.

The following command uses the device instance ID of the I/O controller on the local computer in a DevCon Status command. La commande inclut l’ID d’instance de l’appareil, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. The command uses the at symbol (@) to identify the string as a device instance ID. L’ID est placé entre guillemets (" ") car il inclut le symbole ampersand (&).

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

En réponse, DevCon affiche l’état du contrôleur d’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.

The following command uses the DevCon Status operation to display the status of particular storage-related devices. Il recherche les appareils suivants :

  • Disque GenDisk
  • lecteur CD-ROM, GenCdRom
  • Lecteur de disque de floppy, FDC\GENERIC_FLOPPY_DRIVE
  • Volumes STORAGE\Volume
  • Gestionnaire de disques logiques, ROOT\DMIO
  • Gestionnaire de volumes, ROOT\FTDISK
  • Contrôleur de disque de floppy, ACPI\PNP0700

Dans la commande, chaque ID est séparé des autres par des espaces. Notez que GenDisk les ID compatibles et GenCdRom les autres ID sont des ID matériels.

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

En réponse, DevCon affiche l’état de chaque appareil :

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.

Exemple 20 : Rechercher des appareils par modèle d’ID matériel

The following command uses the DevCon Find operation to search for mouse devices. Plus précisément, la commande recherche l’ordinateur pour les appareils avec des ID matériels ou des ID compatibles qui incluent l’expression « mou » :

devcon find *mou*

En réponse, DevCon découvre deux appareils de souris :

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

Étant donné que toutes les opérations d’affichage DevCon recherchent également des ID matériels, vous pouvez utiliser n’importe quelle opération d’affichage pour rechercher des ID matériels. Sélectionnez l’opération en fonction du contenu dont vous avez besoin dans la sortie. Par exemple, pour rechercher les pilotes de périphérique pour les appareils liés à la souris sur un ordinateur local, envoyez la commande suivante :

devcon driverfiles *mou*

En réponse, DevCon recherche les appareils et répertorie leurs pilotes :

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.

Exemple 21 : Rechercher des appareils par ID ou classe d’instance d’appareil

The following commands use the DevCon Find operation to display all legacy devices on the local computer. Étant donné que les appareils hérités n’ont pas d’ID matériel, vous devez les rechercher par leur ID d’instance d’appareil (chemin d’accès au Registre), ROOT\LEGACYou par leur classe d’installation. LegacyDriver

La première commande recherche les pilotes hérités par un modèle d'ID d'instance de périphérique. The at symbol (@) precedes the ID pattern to indicate that the value is a device instance ID. The value is followed by the wildcard character (*) to instruct the command to find all devices in the specified ID, the ROOT\Legacy subkey:

devcon find @root\legacy*

La deuxième commande recherche les appareils hérités en recherchant tous les appareils de la classe LegacyDriver :

devcon find =legacydriver

Les deux commandes produisent la même sortie, dans ce cas, recherchant les mêmes 27 appareils hérités :

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.

Exemple 22 : Trouver (et trouver tous les) appareils dans une classe de configuration

The following command uses the DevCon FindAll operation to find all devices on the computer in the Net setup class. Le symbole égal (=) précède le nom de classe « Net » pour indiquer que la valeur spécifiée est une classe et non un ID.

devcon findall =net

En réponse, DevCon répertorie les sept appareils suivants dans la classe de configuration Net. Les six premiers sont des périphériques de pilote miniport standard. Le septième appareil, l’adaptateur asynchrone RAS, est un appareil énuméré par logiciel (SW\*) installé uniquement si nécessaire.

PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000                                   : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000                                      : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000                                  : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000                                   : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000                                    : Direct Parallel
SW\{EEAB7790-C514-11D1-B42B-00805FC1270E}\ASYNCMAC          : RAS Async Adapter
7 matching device(s) found.

The following command compares the output from the DevCon Find and DevCon FindAll operations by running a DevCon Find command with the same parameters as the previous DevCon FindAll command:

devcon find =net

En réponse, DevCon répertorie les six appareils suivants dans la classe de configuration Net :

PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000                                   : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000                                      : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000                                  : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000                                   : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000                                    : Direct Parallel
6 matching device(s) found.

Predictably, the DevCon Find command, which returns only currently installed devices, doesn't list the software-enumerated device because the device isn't installed.

Exemple 23 : Afficher les pilotes de filtre pour une classe de configuration

The following command uses the DevCon ClassFilter operation to display the upper filter drivers for the DiskDrive setup class. Étant donné que cette commande n’inclut aucun opérateur classfilter, DevCon affiche les pilotes de filtre pour la classe, mais ne les modifie pas.

devcon classfilter DiskDrive upper

En réponse, DevCon affiche les pilotes de filtre supérieur pour la classe DiskDrive et confirme que les pilotes de filtre ne sont pas modifiés. In this case, the display shows that devices in the DiskDrive setup class use the PartMgr.sys upper filter driver:

Class filters unchanged.
    PartMgr

Exemple 24 : Ajouter un pilote de filtre à une classe de configuration

The following command uses the DevCon ClassFilter operation to add a fictitious filter, Disklog.sys, to the list of upper filter drivers for the DiskDrive setup class.

This command uses the add-after (+, the plus symbol) ClassFilter operator to load the Disklog driver after the PartMgr driver so it receives data that PartMgr.sys already processed.

Lorsque la commande démarre, le curseur virtuel est positionné avant le premier pilote de filtre. Étant donné qu’il n’est pas positionné sur un pilote particulier, DevCon ajoute le pilote Disklog à la fin de la liste des pilotes de filtre.

La commande utilise également le /r paramètre, qui redémarre le système si nécessaire pour que le changement de filtre de classe soit effectif.

devcon /r classfilter DiskDrive upper +Disklog

En réponse, DevCon affiche les pilotes de filtre supérieur actuels pour la classe DiskDrive :

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

Si vous mal orthographié le nom du pilote ou essayez d’ajouter un pilote qui n’est pas installé sur le système, la commande échoue. DevCon n’ajoute pas de pilote, sauf si le pilote est inscrit en tant que service. That is, DevCon only adds the driver if it has a subkey in the Services registry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services subkey.

La commande suivante teste cette fonctionnalité de protection. Il tente d’ajouter « Disklgg » (au lieu de « Disklog ») à la liste des filtres supérieurs pour la classe DiskDrive. La sortie montre que la commande échoue :

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

Exemple 25 : Insérer un pilote de filtre dans la liste des classes

The following command uses the DevCon ClassFilter operation to add a fictitious filter driver, MyFilter.sys, to the list of upper filter drivers for the DiskDrive setup class. The command places MyFilter.sys between PartMgr.sys and Disklog.sys in the load order:

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

La liste suivante montre les pilotes de filtre pour la classe DiskDrive avant l’envoi de la commande :

    PartMgr
    Disklog

The first subcommand, @Disklog, uses the positioning operator (@, the at symbol) to place the virtual cursor on the Disklog filter driver. The second subcommand, -MyFilter, uses the add-before operator (-, the minus symbol) to add MyFilter.sys before Disklog.sys.

La commande utilise également le /r paramètre, qui redémarre le système si nécessaire pour que le changement de filtre de classe soit effectif.

L’opérateur de positionnement est essentiel dans cet exemple. Avant que DevCon traite les sous-commandes classfilter, le curseur virtuel se trouve au début de la liste et n’est positionné sur aucun pilote de filtre. Si vous utilisez l’opérateur add-before (+) lorsque le curseur n’est pas positionné sur un pilote, DevCon ajoute le pilote au début de la liste. Si vous utilisez l’opérateur add-after (-) lorsque le curseur n’est pas positionné sur un pilote, il ajoute le pilote à la fin de la liste.

En réponse, DevCon affiche les pilotes de filtre supérieur actuels pour la classe DiskDrive :

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

Vous pouvez également utiliser la commande suivante pour ajouter le pilote MyFilter et le placer entre PartMgr et Disklog. Dans cet exemple, la première sous-commande, @PartMgrpositionne le curseur virtuel sur le pilote de filtre PartMgr. The second subcommand, +MyFilter, uses the add-after operator (+) to add MyFilter.sys after PartMgr:

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Exemple 26 : Remplacer un pilote de filtre

The following command uses the DevCon ClassFilter operation to replace the original copy of MyFilter.sys with a new and improved version, MyNewFilter.sys, in the list of filter drivers for the DiskDrive setup class:

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

La liste suivante montre les pilotes de filtre pour la classe DiskDrive avant l’envoi de la commande :

    PartMgr
    MyFilter
    Disklog

La première sous-commande utilise l’opérateur delete (!point d’exclamation) pour supprimer MyFilter de la liste des pilotes de filtre supérieur pour la classe DiskDrive. (It doesn't affect the MyFilter.sys file in the C:\Windows\System32\Drivers directory location.)

La deuxième sous-commande utilise l’opérateur add-after (+) pour placer le nouveau pilote de filtre dans la position précédemment occupée par le pilote supprimé. Étant donné que l’opérateur delete laisse le curseur dans la position occupée par le filtre supprimé, les opérateurs add-before (-) et add-after (+) ont le même effet.

La commande utilise également le /r paramètre, qui redémarre le système si nécessaire pour que le changement de filtre de classe soit effectif.

En réponse, DevCon affiche la nouvelle configuration de filtre de classe pour la classe DiskDrive :

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

Exemple 27 : Modifier l’ordre des pilotes de filtre

The following command uses the DevCon ClassFilter operation to change the order of filter drivers for the DiskDrive setup class. Plus précisément, il inverse l’ordre des deuxième et troisième pilotes de filtrage.

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

La liste suivante montre les pilotes de filtre pour la classe DiskDrive avant l’envoi de la commande. Il affiche également le résultat prévu de la commande.

Before After
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

La première sous-commande utilise l’opérateur delete (!) pour supprimer Disklog de la liste. The second subcommand uses the start operator (=, the equals symbol) to move the virtual cursor back to the starting position and the positioning operator (@, the at symbol) to place the cursor on the PartMgr driver. L’opérateur de démarrage est nécessaire, car le curseur virtuel se déplace uniquement vers l’avant dans la liste. La sous-commande finale utilise l’opérateur add-after (+) pour ajouter Disklog après PartMgr.

En réponse, DevCon affiche la nouvelle configuration de filtre de classe pour la classe DiskDrive :

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

Exemple 28 : Activer un appareil particulier

The following command uses the DevCon Enable operation to enable a previously disabled programmable interrupt controller. Le contrôle est désactivé, puis réenable pour corriger un problème système. Étant donné que l’ID matériel du contrôleur dans cet exemple inclut un astérisque (*PNP0000), la commande utilise le caractère guillemet unique (') pour diriger DevCon pour rechercher l’ID matériel précisément tel que spécifié dans la commande. Si la commande n’a pas utilisé le caractère de guillemet (') dans cette instance, DevCon interprète l’astérisque (*) dans la valeur comme caractère générique.

devcon enable '*PNP0000

En réponse, DevCon affiche l’ID d’instance de l’appareil et explique que vous devez redémarrer le système pour activer l’appareil :

ACPI\PNP0000\4&B4063F4&0                                    : Enabled on reboot
Not all of 1 device(s) enabled, at least one requires reboot to complete the operation.

You can respond by rebooting the system manually, or by using the DevCon Reboot operation.

La commande suivante ajoute le /r paramètre à la commande précédente. Le /r paramètre redémarre le système si nécessaire pour effectuer une opération.

devcon /r enable '*PNP0000

En réponse, DevCon active l’appareil, puis redémarre le système pour rendre l’opération d’activation effective.

Au démarrage du système, utilisez une commande DevCon status pour vérifier que l’appareil est activé :

devcon status '*PNP0000

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

Exemple 29 : Activer les appareils par classe

The following command enables all printer devices on the computer by specifying the Printer setup class in a DevCon Enable command. La commande inclut le /r paramètre, qui redémarre le système si nécessaire pour rendre l’opération d’activation effective.

devcon /r enable =Printer

En réponse, DevCon affiche l’ID d’instance de l’appareil de l’imprimante qu’il a trouvé dans la classe Printer et signale que l’imprimante est activée. Bien que la commande inclut le /r paramètre, le système ne redémarre pas, car un redémarrage n’est pas nécessaire pour activer l’imprimante.

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

Exemple 30 : Désactiver les appareils par un modèle d’ID

The following command uses the DevCon Disable operation to disable the USB devices on the local computer. Il identifie les appareils par un modèle d’ID matériel (USB*). Ce modèle correspond à n’importe quel appareil avec un ID matériel ou un ID compatible qui commence par « USB ». La commande inclut le /r paramètre, qui redémarre le système si nécessaire pour rendre l’opération de désactivation effective.

Note

Avant d’utiliser un modèle d’ID pour désactiver un appareil, déterminez les appareils susceptibles d’être affectés. Utilisez le modèle dans une commande d’affichage, telle que devcon status USB* ou devcon hwids USB*.

devcon /r disable USB*

En réponse, DevCon affiche les ID d’instance d’appareil des périphériques USB et les rapports qu’ils sont désactivés. Bien que la commande inclut le /r paramètre, le système ne redémarre pas, car un redémarrage n’est pas nécessaire pour désactiver les appareils.

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.

Exemple 31 : Désactiver les appareils par ID d’instance d’appareil

The following command uses the DevCon Disable operation to disable the USB devices on the local computer. The command uses the at symbol (@) to identify the devices by their device instance IDs. Chaque ID d’instance d’appareil est séparé des autres par un espace.

Lorsque l’ID de l’appareil inclut le symbole ampersand (&), la valeur est placée entre guillemets (" "). La commande inclut le /r paramètre, qui redémarre le système si nécessaire pour rendre l’opération de désactivation effective.

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 réponse, DevCon affiche les ID d’instance d’appareil des périphériques USB et les rapports qu’ils sont désactivés. Bien que la commande inclut le /r paramètre, le système ne redémarre pas, car un redémarrage n’est pas nécessaire pour désactiver les appareils.

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.

Exemple 32 : Mettre à jour le pilote pour les ports de communication

The following command uses the DevCon Update operation to replace the current device driver for communication ports on the system with a test driver specified in the test.inf file. La commande affecte uniquement les appareils dont l’ID matériel entier est *PNP0501 (y compris l’astérisque *).

Vous pouvez utiliser cette commande pour remplacer les pilotes signés sur le système par d’autres pilotes pour les tests ou la résolution des problèmes, ou pour associer les appareils à la dernière version des mêmes pilotes.

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

In response, DevCon displays a Hardware Installation warning explaining that the driver didn't pass Windows Logo testing. If you select the Continue Anyway option on the dialog, the installation continues.

Ensuite, DevCon affiche le message de réussite suivant :

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

You can also use the DevCon UpdateNI operation, the noninteractive version of the DevCon Update operation, to update drivers. The DevCon UpdateNI operation is identical to the DevCon Update operation except it suppresses all user prompts that require a response and assumes the default response to the prompt.

The following command uses the DevCon UpdateNI operation to install the test driver:

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

In this case, DevCon doesn't display the Hardware Installation warning. Instead, it assumes the default response, Stop Installation. Par conséquent, DevCon ne peut pas mettre à jour les pilotes et affiche un message d’échec :

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

Exemple 33 : Installer un appareil

The following command uses the DevCon Install operation to install a keyboard device on the local computer. The command includes the full path to the setup information (INF) file keyboard.inf for the device and a hardware ID *PNP030b:

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

En réponse, DevCon signale qu’il a installé l’appareil. Autrement dit, DevCon crée un nœud d’appareil pour le nouvel appareil et met à jour les fichiers de pilote de l’appareil.

Device node created. Install is complete when drivers files are updated...
Updating drivers for *PNPO30b from c:\windows\inf\keyboard.inf
Drivers updated successfully.

Exemple 34 : Installer un appareil à l’aide de l’installation sans assistance

L’exemple suivant montre comment installer l’adaptateur de bouclage Microsoft pendant une installation sans assistance de Microsoft Windows XP.

To install this device during an unattended setup, begin by adding the following files to a floppy disk: devcon.exe and netloop.inf (C:\Windows\inf\netloop.inf).

Ajoutez ensuite la commande DevCon suivante dans la [GUIRunOnce] section du fichier d’installation sans assistance :

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

Cette commande identifie l’adaptateur de bouclage à l’aide de son ID matériel. *MSLOOP Le caractère de guillemet unique (') qui précède la valeur \*MSLOOP informe DevCon d’interpréter littéralement la chaîne. Par conséquent, DevCon interprète l’astérisque (*) dans le cadre de l’ID matériel et non comme caractère générique.

The command also specifies that DevCon use the Netloop.inf file (on the floppy disk) in the installation. Le /r paramètre redémarre l’ordinateur si nécessaire pour terminer l’installation.

Enfin, ajoutez les paramètres de configuration réseau au fichier d’installation sans assistance et exécutez l’installation sans assistance.

Exemple 35 : Supprimer des appareils par modèle d’ID d’instance d’appareil

The following command uses the DevCon Remove operation to remove all USB devices from the computer. Il identifie les appareils par un modèle d’ID d’instance d’appareil qui correspond à n’importe quel ID d’instance d’appareil (chemin d’accès du Registre) qui commence par la chaîne « USB ». The command uses the at symbol (@) to distinguish the device instance ID from a hardware ID or compatible ID. La commande inclut également le /r paramètre qui redémarre le système si nécessaire pour rendre la suppression effective.

Warning

Avant d’utiliser un modèle d’ID pour supprimer un appareil, déterminez les appareils susceptibles d’être affectés. Utilisez le modèle dans une commande d’affichage, telle que devcon status @usb\* ou devcon hwids @usb\*.

devcon /r remove @usb\*

En réponse, DevCon affiche l’ID d’instance de l’appareil des appareils supprimés :

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.

Exemple 36 : Supprimer un périphérique réseau particulier

The following command uses the DevCon Remove operation to uninstall the NDISWAN miniport driver from the local computer. La commande spécifie la classe Net, puis affine la recherche en spécifiant les appareils de la classe dont l’ID matériel ou l’ID compatible incluent « ndiswan ». La commande inclut également le /r paramètre, qui redémarre le système si nécessaire pour rendre la suppression effective.

Warning

Avant d’utiliser un modèle d’ID pour supprimer un appareil, déterminez les appareils susceptibles d’être affectés. Utilisez le modèle dans une commande d’affichage, telle que devcon status =net *ndiswan ou devcon hwids =net *ndiswan*.

devcon /r remove =net *ndiswan*

En réponse, DevCon affiche l’ID d’instance de l’appareil supprimé :

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

Exemple 37 : Analyser l’ordinateur pour les nouveaux appareils

The following command uses the DevCon Rescan operation to scan the local computer for new devices.

devcon rescan

En réponse, DevCon signale qu’il a analysé le système, mais qu’il n’a trouvé aucun nouvel appareil :

Scanning for new hardware.
Scanning completed.

Exemple 38 : Redémarrer un appareil

The following command uses the DevCon Restart operation to restart the loopback adapter on the local computer. La commande limite la recherche à la classe d’installation Net et, dans cette classe, spécifie l’ID d’instance d’appareil de l’adaptateur de bouclage. @'ROOT\*MSLOOP\0000

The at symbol (@) identifies the string value as a device instance ID. Le caractère de guillemet unique (') informe DevCon d’interpréter littéralement la chaîne. Par conséquent, DevCon interprète l’astérisque (*) dans le cadre de l’ID et non comme caractère générique.

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

En réponse, DevCon affiche l’ID d’instance de l’appareil et signale le résultat :

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

Exemple 39 : Redémarrer l’ordinateur local

The following command uses the DevCon Reboot operation to reboot the operating system on the local computer and to associate the reboot with a hardware installation. Unlike the /r parameter, the DevCon Reboot operation doesn't depend on the return code from another operation.

Vous pouvez inclure cette commande dans les scripts et les fichiers batch qui nécessitent le redémarrage du système.

devcon reboot

En réponse, DevCon affiche un message indiquant qu’il redémarre l’ordinateur (redémarrage de l’ordinateur local).

DevCon uses the standard ExitWindowsEx function to reboot. Si l’utilisateur a ouvert des fichiers sur l’ordinateur ou qu’un programme ne se ferme pas, le système ne redémarre pas. Il attend que l’utilisateur réponde aux invites système pour fermer les fichiers ou mettre fin au processus.

Exemple 40 : Affecter un ID matériel à un appareil hérité

The following command uses the DevCon SetHwID operation to assign the hardware ID beep to the legacy beep device.

La commande utilise l’ID d’instance de l’appareil, car l’appareil ROOT\LEGACY_BEEP\0000 hérité beep n’a pas d’ID matériels ou d’ID compatibles. The command uses the at symbol (@) to indicate that the string is a device instance ID.

La commande n’utilise aucun paramètre de symbole pour positionner l’ID. Par défaut, DevCon ajoute de nouveaux ID matériels à la fin d’une liste d’ID de matériel. Dans ce cas, étant donné que l’appareil n’a pas d’autres ID matériels, le placement de l’ID n’est pas pertinent.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

En réponse, DevCon affiche un message indiquant qu’il a été ajouté beep à la liste des ID matériels de l’appareil. Il affiche également la liste des ID matériels résultants. Dans ce cas, un seul ID matériel figure dans la liste :

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

Exemple 41 : Ajouter un ID matériel à tous les appareils hérités

The following command uses the DevCon SetHwID operation to add the hardware ID, legacy, to the list of hardware IDs for all legacy devices.

La commande utilise le paramètre moins symbol (-) pour ajouter le nouvel ID matériel à la fin de la liste d’ID de matériel de l’appareil, si un ID matériel préféré existe pour l’un des appareils. Il utilise également un modèle d’ID d’instance d’appareil, @ROOT\LEGACY*pour identifier les appareils hérités sur l’ordinateur, c’est-à-dire tous les appareils qui ont un ID d’instance d’appareil qui commence par ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

En réponse, DevCon affiche les listes d’ID matériel résultantes pour tous les appareils affectés :

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

Après avoir affecté le même ID matériel à un groupe d’appareils, vous pouvez utiliser les autres opérations DevCon pour afficher et modifier les appareils dans une seule commande.

Par exemple, la commande suivante affiche l’état de tous les appareils hérités :

devcon status legacy

Exemple 42 : Supprimer un ID matériel de tous les appareils hérités

The following command uses the DevCon SetHwID operation to delete the hardware ID legacy from the list of hardware IDs for all legacy devices.

La commande utilise l’ID legacy matériel pour identifier tous les appareils qui ont cet ID matériel. Il utilise l’opérateur delete (!) pour supprimer l’ID legacy matériel.

devcon sethwid legacy := !legacy

En réponse, DevCon affiche les listes d’ID matériel résultantes pour tous les appareils affectés :

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

Exemple 43 : Ajouter, supprimer et remplacer des ID matériels

The following examples show how to use the various features of the DevCon SetHwID operation.

This series of examples uses a fictitious device, DeviceX, with the device instance ID, ROOT\DeviceX\0000. Avant que les commandes DevCon ne s’exécutent pour l’appareil, l’appareil contient la liste suivante d’ID matériels :

Hw3 Hw4

La commande suivante utilise le symbole plus (+) pour ajouter les valeurs Hw1 d’ID et Hw2 au début d’une liste d’ID matériels pour DeviceX. Étant donné que l’ID Hw2 apparaît déjà dans la liste, la valeur d’ID est déplacée, et non ajoutée. The command uses the at symbol (@) to identify the device by its device instance ID.

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

En réponse, DevCon affiche la nouvelle liste d’identifiants matériels de l’appareil. Les Hw1 valeurs et Hw2 ID apparaissent au début de la liste d’ID dans l’ordre spécifié :

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

En outre, DevCon signale qu’il a modifié une liste d’ID matériel, autrement dit la liste d’ID matériel d’un seul appareil.

La commande suivante utilise l’opérateur delete (!) pour supprimer l’ID Hw1 matériel. Il répertorie ensuite l’ID Hw5 matériel sans paramètre de symbole. Without symbol parameters, SetHwID adds the hardware ID to the end of the hardware ID list for the device.

This command demonstrates that unlike the other symbol parameters for the DevCon SetHwID operation, the delete operator (!) applies only to the hardware ID that it prefixes.

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

En réponse, DevCon affiche la liste des ID matériels résultants pour DeviceX :

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

La commande suivante utilise le paramètre égal (=) pour remplacer tous les ID matériels de la liste pour DeviceX par un ID matériel unique. DevX

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

En réponse, DevCon affiche la liste des ID matériels résultants pour DeviceX :

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

Le message de réussite indique que DevCon a modifié l’ID matériel d’un appareil.

Exemple 44 : Mettre à jour de force la hal

L’exemple suivant montre comment utiliser DevCon pour mettre à jour hal sur l’ordinateur. Le hal actuel est un uniprocesseur (_up) créé avec l’interface ACPI (Advanced Configuration and Power Interface) et le contrôleur d’interruption programmable avancé (APIC), selon les besoins de l’ordinateur. Un testeur souhaite remplacer le type par un multiprocesseur (_mp) ACPI APIC HAL à des fins de test.

The first command uses the DevCon SetHwID operation to change the hardware ID of the HAL from acpiapic_up, the hardware ID for uniprocessor HALs, to acpiapic_mp, the hardware ID for multiprocessor HALs.

You must change the hardware ID because the INF file (.inf) for the HAL includes drivers for both uniprocessor and multiprocessor HALs. The system selects the most appropriate driver from the INF file (.inf) based on the hardware ID of the device. If you don't change the hardware ID, the DevCon Update command reinstalls the same uniprocessor HAL driver.

In the following example, the command identifies the HAL by its instance ID, ROOT\ACPI_HAL\0000, as indicated by the at symbol (@) preceding the ID. La commande utilise le symbole plus (+) pour spécifier acpiapic_mp comme premier ID matériel dans la liste pour hal. La commande utilise l’opérateur delete (!) pour supprimer l’ID acpiapic_up matériel de la liste des ID pour hal.

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

En réponse, DevCon affiche la nouvelle liste d’ID de matériel suivante pour hal :

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

The following command uses the DevCon Update operation to update the driver for the HAL:

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

Ensuite, DevCon affiche le message de réussite suivant :

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

Exemple 45 : Ajouter et supprimer des packages de pilotes

Les exemples suivants montrent comment utiliser DevCon pour ajouter, supprimer et afficher des packages de pilotes tiers (OEM) dans le magasin de pilotes.

The first command, a DevCon Dp_add operation, copies the INF file (.inf) for the Toaster sample driver in the Windows Driver Kit (WDK) to the driver store, that is, to the %Windir%\inf directory. La commande inclut le chemin d'accès complet du fichier INF pour le pilote d'exemple Toaster.

Cette commande est destinée aux pilotes et appareils tiers (OEM), mais vous pouvez utiliser l’exemple Toaster pour tester les commandes.

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

In response, DevCon reports that it added the Toaster INF file to the driver store and named it Oem2.inf:

Driver Package 'oem2.inf' added.

Avant que le fichier INF soit copié dans le magasin de pilotes, Windows compare la version binaire du fichier aux fichiers similaires dans le magasin de pilotes. Il vérifie qu’il n’existe aucun fichier binaire portant le même nom INF. For example, if you repeat the command to add the Toaster.inf file to the driver store, DevCon doesn't create a new OEM*.inf file. Il signale uniquement le nom du fichier existant, comme indiqué dans la sortie DevCon suivante :

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

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

To remove the driver package for the Toaster driver from the driver store, you must use the OEM*.inf file name for the driver. To find the file name for the driver, use the DevCon Dp_enum operation.

La commande suivante répertorie tous les packages de pilotes OEM et quelques-unes de leurs propriétés :

devcon dp_enum

En réponse, DevCon génère la sortie suivante :

c:\WinDDK\5322\tools\devcon\i386>devcon dp_enum
The following 3rd party Driver Packages are on this machine:
oem2.inf
    Provider: Microsoft
    Class: unknown

The output indicates that the driver package supplied by Microsoft with the unspecified device class (Toaster) is named OEM2.inf. Vous pouvez utiliser ces informations pour supprimer le package de pilotes associé au fichier.

The following command deletes the OEM2.inf file from the driver store, along with its associated precompiled INF (.pnf) and catalog (.cat) files. The command uses the OEM2.inf file name:

devcon dp_delete oem2.inf

En réponse, DevCon affiche un message qui indique la réussite de la commande :

Driver Package 'oem2.inf' deleted.

The OEM.inf* file name is required in the DevCon Dp_delete operation. Si vous essayez d’utiliser le nom d’origine du fichier INF, la commande échoue, comme indiqué dans la sortie DevCon suivante :

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