Condividi tramite


Esempi di Console di dispositivo (DevCon.exe)

Importante

PnPUtil viene fornito con ogni versione di Windows e usa le API più affidabili e sicure disponibili e il suo uso è consigliato. Per altre informazioni sull'uso di PnPutil invece di devcon, vedere Sostituzione di DevCon.

Catagorie di esempio

In questa sezione vengono forniti esempi dei comandi della console di dispositivi (DevCon.exe) seguenti:

HwID DevCon

Classi DevCon

DevCon ListClass

Driver DevConFiles

DevCon DriverNodes

Risorse DevCon

DevCon Stack

Stato DevCon

DevCon Find

DevCon FindAll

DevCon ClassFilter

Abilitare DevCon

Disabilita DevCon

Aggiornamento e aggiornamento di DevCon

Installazione di DevCon

DevCon Remove

Analisi di DevCon

Riavvio di DevCon

Riavvio di DevCon

DevCon SetHwID

Dp_add DevCon, dp_deleted dp_enum

Dettagli dell'esempio

Esempio 1: Trovare tutti gli ID hardware

Poiché le operazioni DevCon usano ID e modelli ID per identificare i dispositivi, un primo passaggio comune nell'uso di DevCon consiste nel creare un file di riferimento ID hardware per i dispositivi nel computer.

Il comando seguente usa l'operazione DevCon HwIDs , che restituisce gli ID e la descrizione del dispositivo. Usa il carattere jolly (*) per rappresentare tutti i dispositivi nel computer locale.

devcon hwids *

Poiché l'output è lungo e usato ripetutamente, salvare l'output in un file di testo per riferimento.

Il comando seguente usa il carattere jolly (*) per rappresentare tutti i dispositivi nel computer. Usa il carattere di reindirizzamento (>) per salvare l'output del comando nel file hwids.txt.

devcon hwids * > hwids.txt

Esempio 2: Trovare GLI ID hardware usando un modello

Per trovare gli ID hardware di un particolare dispositivo, immettere l'ID hardware o il modello, l'ID o il modello compatibile, l'ID o il modello dell'istanza del dispositivo o il nome della classe di installazione del dispositivo.

Il comando seguente usa l'operazione DevCon HwID e un modello per trovare gli ID hardware dell'unità disco floppy nel computer. L'utente presuppone che il modello venga visualizzato in uno degli identificatori di dispositivo. Il comando usa il carattere jolly (*) per rappresentare tutti i caratteri che potrebbero precedere o seguire la parola "floppy" in uno degli ID.

devcon hwids *floppy*

In risposta, DevCon visualizza l'ID istanza del dispositivo, l'ID hardware e l'ID compatibile dell'unità disco floppy nel computer. È possibile usare questi ID nei comandi DevCon successivi.

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.

In questo caso, la frase "floppy" si verifica nell'ID hardware o nell'ID compatibile di un solo dispositivo nel computer. Se si verifica nell'ID di più dispositivi, tutti i dispositivi con "floppy" nei relativi ID vengono visualizzati nell'output.

Esempio 3: Trovare GLI ID hardware usando una classe

Il comando seguente usa l'operazione DevCon HwID e una classe di installazione del dispositivo per trovare gli ID hardware di tutti i dispositivi nella classe di installazione del dispositivo Porte. Il segno di uguale (=) che precede il nome della classe indica che si tratta di una classe, non di un ID.

devcon hwids =ports

In risposta, DevCon visualizza gli ID hardware e gli ID compatibili dei tre dispositivi nella classe di installazione Porte.

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.

Esempio 4: Elencare le classi nel computer locale

Poiché le operazioni DevCon possono usare la classe di installazione del dispositivo per identificare i dispositivi, è utile creare un file di riferimento delle classi di installazione del dispositivo dei dispositivi nel computer.

Il comando seguente usa l'operazione DevCon Classes , che restituisce un elenco e una descrizione di tutte le classi nel computer.

devcon classes

Poiché l'output è lungo e usato ripetutamente, salvare l'output in un file di testo per riferimento.

Il comando seguente visualizza tutte le classi di dispositivo nel computer. Usa il carattere di reindirizzamento (>) per salvare l'output del comando nel file classes.txt.

devcon classes > classes.txt

Esempio 6: Elencare i dispositivi in una classe di configurazione del dispositivo

Il comando seguente usa l'operazione DevCon ListClass per elencare i dispositivi in Net, la classe di installazione del dispositivo per le schede di rete.

devcon listclass net

In risposta, DevCon visualizza l'ID istanza del dispositivo e la descrizione di ogni dispositivo nella classe Net setup.

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

Questo display, anche se interessante, non fornisce gli ID hardware dei dispositivi nella classe di installazione Net. Il comando seguente usa l'operazione DevCon HwIDs per elencare i dispositivi nella classe net setup. In un comando DevCon HwIDs il nome della classe è preceduto da un segno di uguale (=) per indicare che è una classe, non un ID.

devcon hwids =net

La visualizzazione risultante elenca i dispositivi nella classe Net e include l'ID istanza del dispositivo, gli ID hardware e gli ID compatibili dei dispositivi nella 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.

Esempio 7: Elencare i dispositivi in più classi

Il comando seguente usa l'operazione DevCon ListClass per elencare i dispositivi nelle classi DiskDrive, CDROM e TapeDrive.

devcon listclass diskdrive cdrom tapedrive

In risposta, DevCon visualizza i dispositivi in tali classi.

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

Esempio 8: Elencare tutti i file driver

Il comando seguente usa l'operazione DevCon DriverFiles per elencare i nomi di file dei driver usati dai dispositivi nel sistema. Il comando usa il carattere jolly (*) per indicare tutti i dispositivi nel sistema. Poiché l'output è esteso, il comando usa il carattere di reindirizzamento (>) per reindirizzare l'output a un file di riferimento, driverfiles.txt.

devcon driverfiles * > driverfiles.txt

Esempio 9: Elencare i file driver di un dispositivo specifico

Il comando seguente usa l'operazione DevCon DriverFiles per cercare il driver di dispositivo usato dal dispositivo mouse nel computer locale. Identifica il dispositivo in base a uno dei relativi ID hardware, HID\Vid_045e&Pid_0039&Rev_0121. L'ID hardware è racchiuso tra virgolette perché include il carattere e commerciale (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

In risposta, DevCon visualizza i due driver di dispositivo che supportano il dispositivo 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.

Esempio 10: Elencare i pacchetti driver in base al modello ID hardware

Il comando seguente usa il comando DevCon DriverNodes e un modello ID per elencare i nodi driver dei dispositivi enumerati dal software. I modelli sono utili per trovare informazioni su dispositivi simili che potrebbero non trovarsi nella stessa classe di installazione.

Il comando seguente usa il modello ID sw\* per specificare i dispositivi i cui ID hardware o ID compatibili iniziano con "sw", ovvero i dispositivi enumerati dal software.

devcon drivernodes sw*

In risposta, DevCon visualizza i nodi driver dei dispositivi enumerati dal software nel 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.

Esempio 11: Elencare i pacchetti driver in base al modello id istanza del dispositivo

Il comando seguente usa l'operazione DevCon DriverNodes per elencare i pacchetti driver di tutti i dispositivi i cui ID istanza del dispositivo iniziano con ROOT\MEDIA, ovvero i dispositivi nella sottochiave Enum\Root\Media registry. Il comando usa il carattere (@) per indicare che la frase si trova nell'ID istanza del dispositivo.

devcon drivernodes @ROOT\MEDIA*

In risposta, DevCon visualizza i nodi driver dei dispositivi il cui ID istanza del dispositivo inizia 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.

Esempio 12: Elencare le risorse di una classe di dispositivi

Il comando seguente usa l'operazione DevCon Resources per visualizzare le risorse allocate ai dispositivi nella classe di configurazione del dispositivo Hdc. Questa classe include controller IDE. Il segno di uguale (=) viene anteporto a "hdc" per indicare che è una classe e non un ID.

devcon resources =hdc

In risposta, DevCon elenca le risorse allocate ai controller IDE nel computer locale.

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.

Esempio 13: Elencare le risorse del dispositivo in base all'ID

Il comando seguente usa l'operazione DevCon Resources per elencare le risorse allocate al timer di sistema. Il comando usa l'ID hardware del timer di sistema ACPI\PNP0100 per specificare il dispositivo.

devcon resources *PNP0100

In risposta, DevCon visualizza le risorse del timer di sistema.

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

Il comando seguente usa l'ID istanza del dispositivo del timer di sistema nel comando Risorse DevCon. Il carattere (@) indica che la stringa è un ID istanza del dispositivo, non un ID hardware o un ID compatibile.

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

Esempio 14: Visualizzare lo stack di driver per i dispositivi di archiviazione

Il comando seguente usa l'operazione DevCon Stack per cercare i dispositivi nella classe di installazione del volume e visualizzare lo stack di driver previsto per tali dispositivi. Il segno di uguale (=) indica che la stringa è un nome di classe.

devcon stack =Volume

In risposta, DevCon visualizza lo stack previsto per i dispositivi nella classe Volume. I dati restituiti includono l'ID istanza del dispositivo e la descrizione di ogni dispositivo, il GUID e il nome della classe di installazione del dispositivo, i nomi dei driver di filtro superiore e inferiore e il controllo dei servizi (se presenti).

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.

Esempio 15: Trovare la classe di installazione di un dispositivo

L'operazione DevCon Stack restituisce la classe di installazione di un dispositivo oltre ai driver di filtro superiore e inferiore. I comandi seguenti individuano la classe di installazione dell'interfaccia della porta della stampante trovandone l'ID istanza del dispositivo e quindi usando l'ID istanza del dispositivo per trovare la relativa classe di installazione.

Il comando seguente usa l'operazione DevCon HwIDs per trovare l'ID istanza del dispositivo dell'interfaccia della porta della stampante usando "LPT", una frase nell'ID hardware della porta della stampante.

devcon hwids *lpt*

In risposta, DevCon restituisce l'ID istanza del dispositivo (visualizzato in grassetto) e l'ID hardware dell'interfaccia della porta della stampante.

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

Il comando successivo usa l'operazione DevCon Stack per trovare la classe di configurazione del dispositivo rappresentata dall'ID istanza del dispositivo. Un valore in corrispondenza del carattere (@) identifica l'ID come ID istanza del dispositivo. L'ID è racchiuso tra virgolette perché include caratteri e commerciale.

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

In risposta, DevCon visualizza lo stack di driver per l'interfaccia della porta della stampante, inclusa la classe . Lo schermo rivela che la porta della stampante si trova nella 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.

Il comando seguente usa l'operazione DevCon Stack per visualizzare lo stack previsto per i dispositivi driver miniport. Cerca i dispositivi nella classe net setup con "miniport" nel relativo ID hardware o ID compatibile.

Si noti che questo comando limita prima la ricerca alla classe Net setup e quindi trova la stringa "miniport". Non trova dispositivi diversi da quelli nella classe di installazione Net.

devcon stack =net *miniport*

In risposta, DevCon visualizza lo stack previsto per i driver 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.

Esempio 17: Visualizzare lo stato di tutti i dispositivi

Il comando seguente usa l'operazione DevCon Status per trovare lo stato di tutti i dispositivi nel computer locale. Salva quindi lo stato nel file di status.txt per la registrazione o la revisione successiva. Il comando usa il carattere jolly (*) per rappresentare tutti i dispositivi e il carattere di reindirizzamento (>) per reindirizzare l'output al file status.txt.

devcon status * > status.txt

Esempio 18: Visualizzare lo stato di un dispositivo in base all'ID istanza del dispositivo

Il modo più affidabile per trovare lo stato di un particolare dispositivo consiste nell'usare l'ID istanza del dispositivo.

Il comando seguente usa l'ID istanza del dispositivo del controller di I/O nel computer locale in un comando DevCon Status. Il comando include l'ID istanza del dispositivo, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. Il carattere (@) preceduto dall'ID identifica la stringa come ID istanza del dispositivo. L'ID deve essere racchiuso tra virgolette perché include caratteri e commerciale.

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

In risposta, DevCon visualizza lo stato del controller di I/O.

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.

Il comando seguente usa l'operazione DevCon Status per visualizzare lo stato di dispositivi specifici correlati all'archiviazione. Cerca i dispositivi seguenti:

  • Unità disco, GenDisk

  • Unità CD-ROM, GenCdRom

  • Unità disco floppy, FDC\GENERIC_FLOPPY_DRIVE

  • Volumi, ARCHIVIAZIONE\Volume

  • Gestione dischi logici, ROOT\DMIO

  • Gestione volumi, ROOT\FTDISK

  • Controller disco floppy, ACPI\PNP0700

Nel comando ogni ID è separato dagli altri in base agli spazi. Si noti che GenDisk e GenCdRom sono ID compatibili, mentre gli altri ID sono ID hardware.

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

In risposta, DevCon visualizza lo stato di ogni 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.

Esempio 20: Trovare i dispositivi in base al modello ID hardware

Il comando seguente usa l'operazione DevCon Find per cercare i dispositivi del mouse. In particolare, il comando cerca nel computer i dispositivi il cui ID hardware o ID compatibile include "mou." e non troverebbe un driver "moose".

devcon find *mou*

In questo caso, DevCon ha trovato entrambi i dispositivi del mouse.

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

Poiché tutte le operazioni di visualizzazione devCon trovano anche ID hardware, è possibile usare qualsiasi operazione di visualizzazione per cercare gli ID hardware. Selezionare l'operazione in base al contenuto necessario nell'output. Ad esempio, per trovare i driver di dispositivo usati dai dispositivi correlati al mouse in un computer locale, inviare il comando seguente.

devcon driverfiles *mou*

In risposta, DevCon trova i dispositivi ed elenca i driver.

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.

Esempio 21: Trovare i dispositivi in base all'ID o alla classe dell'istanza del dispositivo

I comandi seguenti usano l'operazione DevCon Find per visualizzare tutti i dispositivi legacy nel computer locale. Poiché i dispositivi legacy non hanno un ID hardware, è necessario cercarli in base all'ID istanza del dispositivo (percorso del Registro di sistema), ROOT\LEGACY o alla relativa classe di installazione LegacyDriver.

Il primo comando trova i driver legacy in base a un modello di ID istanza del dispositivo. Il modello ID è preceduto dal carattere in corrispondenza del carattere (@) per indicare un ID istanza del dispositivo e seguito dal carattere jolly (*) per trovare tutti i dispositivi nella sottochiave ROOT\Legacy.

devcon find @root\legacy*

Il secondo comando trova i dispositivi legacy cercando tutti i dispositivi nella classe LegacyDriver.

devcon find =legacydriver

Entrambi i comandi producono lo stesso output, in questo caso, trovando gli stessi 27 dispositivi legacy.

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.

Esempio 22: Trovare (e trovare tutti) i dispositivi in una classe di installazione

Il comando seguente usa l'operazione DevCon FindAll per trovare tutti i dispositivi nel computer nella classe net setup. Il segno di uguale (=) indica che Net è una classe di installazione e non un ID.

devcon findall =net

In risposta, DevCon elenca i sette dispositivi seguenti nella classe net setup. I primi sei sono dispositivi driver miniport standard. Il settimo dispositivo, l'adattatore asincrono RAS, è un dispositivo enumerato dal software (SW\*) che non viene installato fino a quando non è necessario.

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.

Il comando seguente confronta le operazioni DevCon Find and DevCon FindAll eseguendo un comando DevCon Find con gli stessi parametri del comando DevCon FindAll precedente.

devcon find =net

In risposta, DevCon elenca i sei dispositivi seguenti nella classe 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.

Prevedibilmente, il comando DevCon Find , che restituisce solo i dispositivi attualmente installati, non elenca il dispositivo enumerato dal software perché il dispositivo non è installato.

Esempio 23: Visualizzare i driver di filtro per una classe di installazione

Il comando seguente usa l'operazione DevCon ClassFilter per visualizzare i driver di filtro superiore per la classe di installazione di DiskDrive. Poiché questo comando non include operatori classfilter, DevCon visualizza i driver di filtro per la classe, ma non li modifica.

devcon classfilter DiskDrive upper

In risposta, DevCon visualizza i driver di filtro superiore per la classe DiskDrive e conferma che non li ha modificati. In questo caso, la visualizzazione mostra che i dispositivi nella classe di installazione di DiskDrive usano il driver di filtro superiore PartMgr.sys.

Class filters unchanged.
    PartMgr

Esempio 24: Aggiungere un driver di filtro a una classe di installazione

Il comando seguente usa l'operazione DevCon ClassFilter per aggiungere un filtro fittizio, Disklog.sys, all'elenco dei driver di filtro superiore per la classe di installazione di DiskDrive.

Questo comando usa l'operatore ClassFilter add-after (+) per caricare il driver Disklog dopo il driver PartMgr in modo che riceva i dati che PartMgr.sys già elaborati.

All'avvio del comando, il cursore virtuale viene posizionato prima del primo driver di filtro. Poiché non è posizionato in un determinato driver, DevCon aggiunge il driver Disklog alla fine dell'elenco di driver di filtro.

Il comando usa anche il parametro /r , che riavvia il sistema se è necessario rendere effettiva la modifica del filtro della classe.

devcon /r classfilter DiskDrive upper +Disklog

In risposta, DevCon visualizza i driver di filtro superiore correnti per la classe DiskDrive.

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

Se si digita il nome del driver o si tenta di aggiungere un driver non installato nel sistema, il comando ha esito negativo. DevCon non aggiunge un driver a meno che il driver non sia registrato come servizio, ovvero, a meno che il driver non abbia una sottochiave nella sottochiave del Registro di sistema dei servizi (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services).

Il comando seguente verifica questa funzionalità di protezione. Tenta di aggiungere "Disklgg" (anziché "Disklog") all'elenco dei filtri superiori per la classe DiskDrive. L'output dimostra che il comando ha esito negativo.

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

Esempio 25: Inserire un driver di filtro nell'elenco classi

Il comando seguente usa l'operazione DevCon ClassFilter per aggiungere un driver di filtro fittizio, MyFilter.sys, all'elenco dei driver di filtro superiore per la classe di installazione di DiskDrive. Il comando inserisce MyFilter.sys tra PartMgr.sys e Disklog.sys nell'ordine di caricamento.

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

L'elenco seguente mostra i driver di filtro per la classe DiskDrive prima dell'invio del comando.

    PartMgr
    Disklog

Il primo sottocomando, @Disklog, usa l'operatore di posizionamento (@) per posizionare il cursore virtuale sul driver di filtro Disklog. Il secondo sottocomando , -MyFilter, usa l'operatore add-before (-) per aggiungere MyFilter.sys prima di Disklog.sys.

Il comando usa anche il parametro /r , che riavvia il sistema se è necessario rendere effettiva la modifica del filtro della classe.

L'operatore di posizionamento è essenziale in questo esempio. Prima che DevCon elabori i sottocomandi classfilter, il cursore virtuale si trova all'inizio dell'elenco e non è posizionato su alcun driver di filtro. Se si usa l'operatore add-before (+) quando il cursore non è posizionato su un driver, DevCon aggiunge il driver all'inizio dell'elenco. Se si utilizza l'operatore add-after (-) quando il cursore non è posizionato su un driver, il driver viene aggiunto alla fine dell'elenco.

In risposta, DevCon visualizza i driver di filtro superiore correnti per la classe DiskDrive.

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

È anche possibile usare il comando seguente per aggiungere il driver MyFilter e inserirlo tra PartMgr e Disklog. In questo esempio, il primo sottocomando, @PartMgr, posiziona il cursore virtuale sul driver di filtro PartMgr. Il secondo sottocomando + MyFilter usa l'operatore add-after (+) per aggiungere MyFilter.sys dopo PartMgr.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Esempio 26: Sostituire un driver di filtro

Il comando seguente usa l'operazione DevCon ClassFilter per sostituire la copia originale di MyFilter.sys con una versione nuova e migliorata, MyNewFilter.sys, nell'elenco dei driver di filtro per la classe di installazione di DiskDrive.

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

L'elenco seguente mostra i driver di filtro per la classe DiskDrive prima dell'invio del comando.

    PartMgr
    MyFilter
    Disklog

Il primo sottocomando usa l'operatore delete (!) per eliminare MyFilter dall'elenco dei driver di filtro superiore per la classe DiskDrive. Non influisce sul file MyFilter.sys nella directory C:\Windows\System32\Drivers.

Il secondo sottocomando usa l'operatore add-after (+) per posizionare il nuovo driver di filtro nella posizione occupata dal driver eliminato. Poiché l'operatore delete lascia il cursore nella posizione occupata dal filtro eliminato, gli operatori add-before (-) e add-after (+) hanno lo stesso effetto.

Il comando usa anche il parametro /r , che riavvia il sistema se è necessario rendere effettiva la modifica del filtro della classe.

In risposta, DevCon mostra la nuova configurazione del filtro di classe per la classe DiskDrive.

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

Esempio 27: Modificare l'ordine dei driver di filtro

Il comando seguente usa l'operazione DevCon ClassFilter per modificare l'ordine dei driver di filtro per la classe di installazione di DiskDrive. In particolare, inverte l'ordine dei driver del secondo e del terzo filtro.

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

L'elenco seguente mostra i driver di filtro per la classe DiskDrive prima dell'invio del comando. Mostra anche il risultato previsto del comando.

Prima Dopo
PartMgr PartMgr
MyNewFilter Discolog
Discolog MyNewFilter

Il primo sottocomando usa l'operatore delete (!) per eliminare Disklog dall'elenco. Il secondo sottocomando usa l'operatore start (=) per spostare il cursore virtuale nella posizione iniziale e quindi usa l'operatore di posizionamento (@) per posizionare il cursore sul driver PartMgr. L'operatore start è necessario perché il cursore virtuale si sposta solo in avanti nell'elenco. Il sottocomando finale usa l'operatore add-after (+) per aggiungere Disklog dopo PartMgr.

In risposta, DevCon mostra la nuova configurazione del filtro di classe per la classe DiskDrive.

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

Esempio 28: Abilitare un dispositivo specifico

Il comando seguente usa l'operazione DevCon Enable per abilitare un controller di interrupt programmabile disabilitato per correggere un problema di sistema. Poiché l'ID hardware del controller *PNP0000 include un asterisco, il comando usa il carattere virgolette singolo (') per indirizzare DevCon a trovare l'ID hardware esattamente come specificato nel comando. In caso contrario, l'asterisco verrebbe interpretato come carattere jolly.

devcon enable '*PNP0000

In risposta, DevCon visualizza l'ID istanza del dispositivo e spiega che è necessario riavviare il sistema per abilitare il 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.

È possibile rispondere riavviando il sistema, manualmente o usando l'operazione devCon Reboot .

Il comando seguente aggiunge il parametro /r al comando precedente. Il parametro /r riavvia il sistema solo se è necessario riavviare per completare un'operazione.

devcon /r enable '*PNP0000

In risposta, DevCon abilita il dispositivo e quindi riavvia il sistema per rendere effettiva l'abilitazione.

All'avvio del sistema, usare un comando di stato DevCon per verificare che il dispositivo sia abilitato.

devcon status '*PNP0000

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

Esempio 29: Abilitare i dispositivi per classe

Il comando seguente abilita tutti i dispositivi della stampante nel computer specificando la classe di installazione stampante in un comando DevCon Enable. Il comando include il /r parametro , che riavvia il sistema, se necessario per rendere effettiva l'abilitazione.

devcon /r enable =Printer

In risposta, DevCon visualizza l'ID istanza del dispositivo della stampante trovata nella classe Printer e segnala che è abilitato. Anche se il comando include il parametro /r , il sistema non è stato riavviato perché non è stato necessario un riavvio per abilitare la stampante.

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

Esempio 30: Disabilitare i dispositivi in base a un modello ID

Il comando seguente usa l'operazione DevCon Disable per disabilitare i dispositivi USB nel computer locale. Identifica i dispositivi in base a un modello DI ID hardware (USB*). Questo modello corrisponderà a qualsiasi dispositivo il cui ID hardware o ID compatibile inizia con "USB". Il comando include il /r parametro , che riavvia il sistema, se necessario per rendere effettiva la disabilitazione.

Nota Prima di usare un modello ID per disabilitare un dispositivo, determinare quali dispositivi saranno interessati. A tale scopo, usare il modello in un comando di visualizzazione, ad esempio devcon status USB\* o devcon hwids USB\*.

devcon /r disable USB*

In risposta, DevCon visualizza gli ID istanza del dispositivo dei dispositivi USB e segnala che sono disabilitati. Anche se il comando include il parametro /r , il sistema non è stato riavviato perché non è stato necessario riavviare i dispositivi.

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.

Esempio 31: Disabilitare i dispositivi in base all'ID istanza del dispositivo

Il comando seguente usa l'operazione DevCon Disable per disabilitare i dispositivi USB nel computer locale. Questo comando identifica i dispositivi in base agli ID dell'istanza del dispositivo, come indicato dal carattere (@) che precede ogni ID. Ogni ID istanza del dispositivo è separato dagli altri da uno spazio.

Inoltre, poiché gli ID istanza del dispositivo includono il carattere e commerciale (&), sono racchiusi tra virgolette. Il comando include il /r parametro , che riavvia il sistema, se necessario per rendere effettiva la disabilitazione.

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

In risposta, DevCon visualizza gli ID istanza del dispositivo dei dispositivi USB e segnala che sono disabilitati. Anche se il comando include il parametro /r , il sistema non è stato riavviato perché non è stato necessario riavviare i dispositivi.

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.

Esempio 32: Aggiornare il driver per le porte di comunicazione

Il comando seguente usa l'operazione DevCon Update per sostituire il driver di dispositivo corrente per le porte di comunicazione nel sistema con un driver di test specificato nel file test.inf. Il comando interessa solo i dispositivi il cui id hardware intero è *PNP0501 (incluso l'asterisco).

È possibile usare questo comando per sostituire i driver firmati nel sistema con driver alternativi per il test o la risoluzione dei problemi oppure per associare i dispositivi alla versione più recente degli stessi driver.

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

In risposta, DevCon visualizza un avviso di installazione hardware che spiega che il driver non ha superato il test del logo di Windows. Se si seleziona il pulsante Continua comunque nella finestra di dialogo, l'installazione continua.

Quindi, DevCon visualizza il messaggio di esito positivo seguente.

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

È anche possibile usare l'operazione DevCon UpdateNI, la versione non interattiva dell'operazione DevCon Update, per aggiornare i driver. L'operazione DevCon UpdateNI è identica all'operazione DevCon Update , ad eccezione del fatto che elimina tutti i prompt degli utenti che richiedono una risposta e presuppone la risposta predefinita al prompt.

Il comando seguente usa l'operazione DevCon UpdateNI per installare il driver di test.

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

In questo caso, DevCon non visualizza l'avviso di installazione hardware. Presuppone invece la risposta predefinita Interrompi installazione. Di conseguenza, DevCon non può aggiornare i driver e visualizza un messaggio di errore.

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

Esempio 33: Installare un dispositivo

Il comando seguente usa l'operazione devCon Install per installare un dispositivo da tastiera nel computer locale. Il comando include il percorso completo del file INF per il dispositivo (keyboard.inf) e un ID hardware (*PNP030b).

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

In risposta, DevCon segnala che ha installato il dispositivo, ovvero ha creato un nodo del dispositivo per il nuovo dispositivo e ha aggiornato i file driver per il 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.

Esempio 34: Installare un dispositivo usando l'installazione automatica

Nell'esempio seguente viene illustrato come installare l'adapter Microsoft Loopback durante un'installazione automatica di Microsoft Windows XP.

Per installare il dispositivo durante un'installazione automatica, iniziare aggiungendo i file seguenti a un disco floppy: devcon.exe e netloop.inf (C:\Windows\inf\netloop.inf).

Quindi, nella sezione [GUIRunOnce] del file di installazione automatica aggiungere il comando DevCon seguente:

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

Questo comando identifica l'adattatore loopback usando l'ID hardware *MSLOOP. Il carattere virgolette singolo precedente a "*MSLOOP" indica a DevCon di interpretare letteralmente la stringa, ovvero di interpretare l'asterisco come parte dell'ID hardware, non come carattere jolly.

Il comando specifica inoltre che DevCon usa il file Netloop.inf (sul disco floppy) nell'installazione. Il /r parametro riavvia il computer solo se è necessario un riavvio per completare l'installazione.

Infine, aggiungere le impostazioni di configurazione di rete al file di installazione automatica ed eseguire l'installazione automatica.

Esempio 35: Rimuovere i dispositivi in base al modello id istanza del dispositivo

Il comando seguente usa l'operazione DevCon Remove per rimuovere tutti i dispositivi USB dal computer. Identifica i dispositivi in base a un modello id istanza del dispositivo che corrisponde a qualsiasi ID istanza del dispositivo (percorso del Registro di sistema) che inizia con la stringa "USB\". Il carattere at (@) distingue l'ID istanza del dispositivo da un ID hardware o un ID compatibile. Il comando include anche il parametro /r che riavvia il sistema se è necessario per rendere effettiva la procedura di rimozione.

Avviso

Prima di rimuovere tutti i dispositivi usando un modello, determinare quali dispositivi sono interessati. A tale scopo, usare il modello in un comando di visualizzazione, ad esempio devcon status @usb\* o devcon hwids @usb\*.

devcon /r remove @usb\*

In risposta, DevCon visualizza l'ID istanza del dispositivo dei dispositivi rimossi.

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.

Esempio 36: Rimuovere un dispositivo di rete specifico

Il comando seguente usa l'operazione DevCon Remove per disinstallare il driver miniport NDISWAN dal computer locale. Il comando specifica la classe Net e quindi affina la ricerca specificando i dispositivi nella classe il cui ID hardware o ID compatibile includono "ndiswan". Il comando include anche il parametro /r , che riavvia il sistema se è necessario riavviare per rendere effettiva la procedura di rimozione.

Avviso Prima di rimuovere tutti i dispositivi usando un modello, determinare quali dispositivi saranno interessati. A tale scopo, usare il modello in un comando di visualizzazione, ad esempio devcon status =net *ndiswan o devcon hwids =net *ndiswan*.

devcon /r remove =net *ndiswan*

In risposta, DevCon visualizza l'ID istanza del dispositivo rimosso.

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

Esempio 37: Analizzare il computer per individuare nuovi dispositivi

Il comando seguente usa l'operazione DevCon Rescan per analizzare il computer locale per individuare nuovi dispositivi.

devcon rescan

In risposta, DevCon segnala che ha analizzato il sistema ma non ha trovato nuovi dispositivi.

Scanning for new hardware.
Scanning completed.

Esempio 38: Riavviare un dispositivo

Il comando seguente usa l'operazione DevCon Restart per riavviare l'adattatore loopback nel computer locale. Il comando limita la ricerca alla classe Net setup e, all'interno di tale classe, specifica l'ID istanza del dispositivo dell'adattatore loopback @'ROOT\*MSLOOP\0000. Il carattere at (@) identifica la stringa come ID istanza del dispositivo. Il carattere virgolette singolo ('), che richiede una ricerca letterale, impedisce a DevCon di interpretare l'asterisco nell'ID come carattere jolly.

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

In risposta, DevCon visualizza l'ID istanza del dispositivo e segnala il risultato.

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

Esempio 39: Riavviare il computer locale

Il comando seguente usa l'operazione DevCon Reboot per riavviare il sistema operativo nel computer locale e per associare il riavvio a un'installazione hardware. A differenza del parametro /r , l'operazione DevCon Reboot non dipende dal codice restituito da un'altra operazione.

È possibile includere questo comando in script e file batch che richiedono il riavvio del sistema.

devcon reboot

In risposta, DevCon visualizza un messaggio che indica che sta riavviando il computer (Riavvio del computer locale).

DevCon usa la funzione ExitWindowsEx standard per riavviare. Se l'utente ha file aperti nel computer o un programma non verrà chiuso, il sistema non viene riavviato finché l'utente non ha risposto alle richieste di sistema di chiudere i file o terminare il processo.

Esempio 40: Assegnare un ID hardware a un dispositivo legacy

Il comando seguente usa l'operazione DevCon SetHwID per assegnare l'ID hardware, il segnale acustico, al dispositivo di distribuzione legacy.

Il comando usa l'ID istanza del dispositivo, ROOT\LEGACY_B edizione Enterprise P\0000, perché il dispositivo legacy di beep non dispone di ID hardware o ID compatibili. Usa il carattere (@) per indicare che la stringa è un ID istanza del dispositivo.

Il comando non usa parametri di simboli per posizionare l'ID. Per impostazione predefinita, DevCon aggiunge nuovi ID hardware alla fine di un elenco di ID hardware. In questo caso, poiché il dispositivo non ha altri ID hardware, il posizionamento è irrilevante.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

In risposta, DevCon visualizza un messaggio che indica che viene aggiunto un segnale acustico all'elenco di ID hardware per il dispositivo. Visualizza anche l'elenco di ID hardware risultante. In questo caso, nell'elenco è presente un solo ID hardware.

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

Esempio 41: Aggiungere un ID hardware a tutti i dispositivi legacy

Il comando seguente usa l'operazione DevCon SetHwID per aggiungere l'ID hardware, legacy, all'elenco di ID hardware per tutti i dispositivi legacy.

Il comando usa il - parametro symbol per aggiungere il nuovo ID hardware alla fine dell'elenco di ID hardware per il dispositivo, nel caso in cui sia stato creato un ID hardware preferito per uno dei dispositivi. Usa anche un modello id istanza del dispositivo, @ROOT\LEGACY\*, per identificare i dispositivi legacy nel computer, ovvero tutti i dispositivi il cui ID istanza del dispositivo inizia con ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

In risposta, DevCon visualizza gli elenchi di ID hardware risultanti per tutti i dispositivi interessati.

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

Dopo aver assegnato lo stesso ID hardware a un gruppo di dispositivi, è possibile usare le altre operazioni DevCon per visualizzare e modificare i dispositivi in un singolo comando.

Ad esempio, il comando seguente visualizza lo stato di tutti i dispositivi legacy.

devcon status legacy

Esempio 42: Eliminare un ID hardware da tutti i dispositivi legacy

Il comando seguente usa l'operazione DevCon SetHwID per eliminare l'ID hardware, legacy, dall'elenco di ID hardware per tutti i dispositivi legacy.

Il comando usa l'ID hardware, legacy, per identificare tutti i dispositivi con tale ID hardware. Usa quindi il parametro del simbolo ! per eliminare l'ID hardware legacy .

devcon sethwid legacy := !legacy

In risposta, DevCon visualizza gli elenchi di ID hardware risultanti per tutti i dispositivi interessati.

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

Esempio 43: Aggiungere, eliminare e sostituire gli ID hardware

La serie di esempi seguente illustra come usare le varie funzionalità dell'operazione DevCon SetHwID .

Questa serie usa un dispositivo fittizio, DeviceX, con l'ID istanza del dispositivo ROOT \DeviceX\0000. Prima di usare DevCon, il dispositivo aveva l'elenco seguente di ID hardware:

Hw3 Hw4

Il comando seguente usa il + simbolo per aggiungere Hw1 e Hw2 all'inizio di un elenco di ID hardware per DeviceX. Poiché Hw2 è già visualizzato nell'elenco, viene spostato, non aggiunto. Il comando identifica il dispositivo in base al relativo ID istanza del dispositivo, come indicato dal carattere (@) precedente all'ID.

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

In risposta, DevCon visualizza il nuovo elenco di ID hardware per il dispositivo. Si noti che Hw1 e Hw2 vengono visualizzati all'inizio dell'elenco nell'ordine specificato.

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

DevCon segnala inoltre che è stato modificato un elenco di ID hardware, ovvero l'elenco di ID hardware di un dispositivo.

Il comando seguente usa il simbolo ! per eliminare l'ID hardware Hw1 . Elenca quindi l'ID hardware Hw5, senza un parametro di simbolo. Senza parametri di simbolo, SetHwID aggiunge l'ID hardware alla fine dell'elenco di ID hardware per il dispositivo.

Questo comando dimostra che, a differenza degli altri parametri di simboli per l'operazione DevCon SetHwID , il simbolo ! si applica solo all'ID hardware preceduto da esso.

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

In risposta, DevCon visualizza l'elenco di ID hardware risultante per DeviceX.

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

Il comando seguente usa il parametro = per sostituire tutti gli ID hardware nell'elenco per DeviceX con un singolo ID hardware, DevX.

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

In risposta, DevCon visualizza l'elenco di ID hardware risultante per DeviceX.

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

Il messaggio di operazione riuscita indica che DevCon ha modificato l'ID hardware di un dispositivo.

Esempio 44: aggiornare forzatamente l'HAL

L'esempio seguente illustra come usare DevCon per aggiornare hal nel computer. In questo esempio, un tester vuole sostituire l'APIC HAL dell'uniprocessore che è più adatto al computer con un APIC HAL APCI multiprocessore a scopo di test.

Il primo comando usa l'operazione DevCon SetHwID per modificare l'ID hardware di HAL da acpiapic_up, l'ID hardware per gli ACL uniprocessore, in acpiapic_mp, l'ID hardware per gli ACL multiprocessore.

È necessario modificare l'ID hardware perché il file INF per HAL include i driver sia per uniprocessore che per gli HALs multiprocessore. Il sistema seleziona il driver più appropriato dal file INF in base all'ID hardware del dispositivo. Se non si modifica l'ID hardware, il comando DevCon Update semplicemente reinstalla il driver HAL di uniprocessore.

Nel comando seguente il comando identifica hal in base all'ID istanza ROOT\ACPI_HAL\0000, come indicato dal @ carattere che precede l'ID. Il comando usa il + carattere per rendere acpiapic_mp il primo ID hardware nell'elenco per HAL. Usa quindi il carattere ! per eliminare l'ID hardware acpiapic_up dall'elenco di ID per HAL.

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

In risposta, DevCon visualizza il nuovo elenco di ID hardware seguente per HAL.

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

Il comando seguente usa l'operazione DevCon Update per aggiornare il driver per HAL.

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

Quindi, DevCon visualizza il messaggio di esito positivo seguente.

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

Esempio 45: Aggiungere e rimuovere pacchetti driver

Gli esempi seguenti illustrano come usare DevCon per aggiungere, eliminare e visualizzare pacchetti driver OEM (Third-Party) nell'archivio driver.

Il primo comando, un comando DevCon Dp_add , copia il file INF per il driver di esempio Tostapane nell'archivio driver, ovvero nella directory %Windir%\inf. Il comando include il percorso completo del file INF per il driver di esempio Tostapane.

Questo comando è destinato a driver e dispositivi oem di terze parti, ma è possibile usare l'esempio Di tostapane per testare i comandi.

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

In risposta, DevCon segnala che ha aggiunto il file INF tostapane all'archivio driver e lo ha denominato Oem2.inf.

Driver Package 'oem2.inf' added.

Prima di copiarlo nell'archivio driver, Windows confronta la versione binaria del file INF con le versioni binarie dei file INF nell'archivio driver per assicurarsi che non stia aggiungendo un file duplicato. Ad esempio, se si ripete il comando per aggiungere Toast.inf all'archivio driver, DevCon non crea un nuovo file OEM*.inf. Segnala solo il nome del file esistente, come illustrato nell'output DevCon seguente.

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.

Per rimuovere il pacchetto driver per il driver Tostapane dall'archivio driver, è necessario usare il nome del file OEM*.inf per il driver. Per trovare il nome del file per il driver, usare il comando DevCon Dp_enum.

Il comando seguente elenca tutti i pacchetti driver OEM e alcune delle relative proprietà.

devcon dp_enum

In risposta, DevCon genera la visualizzazione seguente:

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

Queste informazioni indicano che il pacchetto driver fornito da Microsoft con la classe di dispositivo non specificata (Tostapane) è denominato OEM2.inf. È possibile usare queste informazioni per eliminare il pacchetto driver associato al file.

Il comando seguente elimina il file OEM2.inf dall'archivio driver, insieme ai file INF precompilati e catalog (.cat) associati. Il comando usa il nome file OEM*.inf.

devcon dp_delete oem2.inf

In risposta, DevCon visualizza un messaggio che indica che il comando è riuscito:

Driver Package 'oem2.inf' deleted.

Il nome del file OEM*.inf è necessario nel comando DevCon Dp_delete. Se si tenta di usare il nome originale del file INF, il comando ha esito negativo, come illustrato nell'output DevCon seguente.

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