Exempel på enhetskonsol (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. PnPUtil-verktyget levereras med varje version av Windows och använder de mest tillförlitliga och säkra API:er som finns tillgängliga. Mer information om hur du använder PnPutil i stället för Enhetskonsol finns i Ersätta enhetskonsol.

Example categories

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

Category Examples
HwIDs Exempel 1: Hitta alla maskinvaru-ID:t
Exempel 2: Hitta maskinvaru-ID:t med hjälp av ett mönster
Exempel 3: Hitta maskinvaru-ID:t med hjälp av en klass
Classes Exempel 4: Lista klasser på den lokala datorn
ListClass Exempel 6: Lista enheterna i en enhetskonfigurationsklass
Exempel 7: Lista enheterna i flera klasser
DriverFiles Exempel 8: Lista alla drivrutinsfiler
Exempel 9: Lista drivrutinsfilerna för en viss enhet
DriverNodes Exempel 10: Lista drivrutinspaket efter maskinvaru-ID-mönster
Exempel 11: Lista drivrutinspaket efter mönster för enhetsinstans-ID
Resources Exempel 12: Lista resurser för en klass med enheter
Exempel 13: Lista resurser för en enhet efter ID
Stack Exempel 14: Visa drivrutinsstacken för lagringsenheter
Exempel 15: Hitta installationsklassen för en enhet
Exempel 16: Visa stacken för relaterade enheter
Status Exempel 17: Visa status för alla enheter på den lokala datorn
Exempel 18: Visa status för en enhet efter enhetsinstans-ID
Exempel 19: Visa status för relaterade enheter
Find Exempel 20: Hitta enheter efter maskinvaru-ID-mönster
Exempel 21: Hitta enheter efter enhetsinstans-ID eller klass
FindAll Exempel 22: Hitta (och hitta alla) enheter i en installationsklass
ClassFilter Exempel 23: Visa filterdrivrutinerna för en installationsklass
Exempel 24: Lägga till en filterdrivrutin i en installationsklass
Exempel 25: Infoga en filterdrivrutin i klasslistan
Exempel 26: Ersätt en filterdrivrutin
Exempel 27: Ändra ordningen på filterdrivrutiner
Enable Exempel 28: Aktivera en viss enhet
Exempel 29: Aktivera enheter efter klass
Disable Exempel 30: Inaktivera enheter med ett ID-mönster
Exempel 31: Inaktivera enheter efter enhetsinstans-ID
Uppdatera och uppdateraNI Exempel 32: Uppdatera drivrutinen för kommunikationsportar
Exempel 44: Uppdatera maskinvaruabstraktionsskiktet (HAL) med tvång
Install Exempel 33: Installera en enhet
Exempel 34: Installera en enhet med obevakad installation
Remove Exempel 35: Ta bort enheter efter enhetsinstans-ID-mönster
Exempel 36: Ta bort en viss nätverksenhet
Rescan Exempel 37: Sök igenom datorn efter nya enheter
Restart Exempel 38: Starta om en enhet
Reboot Exempel 39: Starta om den lokala datorn
SetHwID Exempel 40: Tilldela ett maskinvaru-ID till en äldre enhet
Exempel 41: Lägg till ett maskinvaru-ID till alla äldre enheter
Exempel 42: Ta bort ett maskinvaru-ID från alla äldre enheter
Exempel 43: Lägga till, ta bort och ersätta maskinvaru-ID:er
Exempel 44: Med två skäl uppdaterar HAL
dp_add, dp_deleted, dp_enum Exempel 45: Lägga till och ta bort drivrutinspaket

Example details

De fullständiga DevCon-exemplen finns i följande avsnitt.

Exempel 1: Hitta alla maskinvaru-ID:t

DevCon-åtgärder använder ID:er och ID-mönster för att identifiera enheter. Därför är ett vanligt första steg för att använda DevCon att skapa en maskinvaru-ID-referensfil för enheter på datorn.

The following command uses the DevCon HwIDs operation, which returns the IDs and the device description. Kommandot använder jokertecknet asterisk (*) för att representera alla enheter på den lokala datorn.

devcon hwids *

Eftersom utdata är långa och används upprepade gånger sparar du utdata i en textfil som referens.

Följande kommando utökar föregående kommando med omdirigeringstecknet (>). The redirection saves the command output in the specified file, hwids.txt.

devcon hwids * > hwids.txt

Exempel 2: Hitta maskinvaru-ID:t med hjälp av ett mönster

Om du vill hitta maskinvaru-ID:n för en viss enhet anger du något av följande värden med kommandot :

  • Maskinvaru-ID eller mönster
  • Kompatibelt ID eller mönster
  • Enhetsinstans-ID eller mönster
  • Namnet på enhetsinstallationsklassen

The following command uses the DevCon HwIDs operation and a pattern to find the hardware IDs of the floppy disk drive on the computer. (Användaren förutsätter att mönstret visas i något av enhets-ID:n.) Kommandot använder jokertecknet (*) för att representera alla tecken som kan föregå eller följa ordet floppy i något av ID:erna.

devcon hwids *floppy*

Som svar visar DevCon enhetsinstans-ID, maskinvaru-ID och kompatibelt ID för diskettenheten på datorn. Du kan använda dessa ID:er i efterföljande DevCon-kommandon.

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.

I det här exemplet förekommer frasen "diskett" i maskinvaru-ID:t eller det kompatibla ID:t för endast en enhet på datorn. Om frasen förekommer i ID:t för mer än en enhet visas alla enheter med frasen "diskett" i sina ID:n i utdata.

Exempel 3: Hitta maskinvaru-ID:t med hjälp av en klass

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. Likhetssymbolen (=) som föregår klassnamnet anger att det angivna värdet är en klass och inte ett ID.

devcon hwids =ports

Som svar visar DevCon maskinvaru-ID:t och kompatibla ID:t för de tre enheterna i installationsklassen Portar:

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.

Exempel 4: Lista klasser på den lokala datorn

Eftersom DevCon-åtgärder kan använda enhetskonfigurationsklassen för att identifiera enheter är det bra att skapa en referensfil med enhetskonfigurationsklasserna för enheter på datorn.

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

devcon classes

Eftersom utdata är långa och används upprepade gånger sparar du utdata i en textfil som referens.

Följande kommando visar alla enhetsklasser på datorn. It uses the redirection character (>) to save the command output in the specified file, classes.txt.

devcon classes > classes.txt

Exempel 6: Lista enheterna i en enhetskonfigurationsklass

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

devcon listclass net

Som svar visar DevCon enhetsinstans-ID:t och beskrivningen av varje enhet i net-installationsklassen:

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

Även om kommandosvaret är intressant tillhandahåller det inte maskinvaru-ID:t för enheterna i net-installationsklassen.

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

Den resulterande visningen visar enheterna i net-klassen och innehåller enhetsinstans-ID, maskinvaru-ID:n och kompatibla ID:n för enheter i klassen.

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.

Exempel 7: Lista enheterna i flera klasser

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

devcon listclass diskdrive cdrom tapedrive

Som svar visar DevCon enheterna i dessa klasser:

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

Exempel 8: Lista alla drivrutinsfiler

The following command uses the DevCon DriverFiles operation to list the file names of drivers that devices on the system use. Kommandot använder jokertecknet (*) för att representera alla enheter i systemet. 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

Exempel 9: Lista drivrutinsfilerna för en viss enhet

The following command uses the DevCon DriverFiles operation to search for the device driver used by the mouse device on the local computer. Kommandot identifierar enheten med ett av dess maskinvaru-ID:n, HID\Vid_045e&Pid_0039&Rev_0121. Maskinvaru-ID:t omges av citattecken (" ") eftersom det innehåller symbolen ampersand (&).

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

Som svar visar DevCon de två enhetsdrivrutiner som stöder musenheten:

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.

Exempel 10: Lista drivrutinspaket efter maskinvaru-ID-mönster

The following command uses the DevCon DriverNodes command and an ID pattern to list the driver nodes of software-enumerated devices. Mönster är användbara för att hitta information om liknande enheter som kanske inte finns i samma installationsklass.

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*

Som svar visar DevCon drivrutinsnoderna för programvaruuppräknade enheter i systemet:

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.

Exempel 11: Lista drivrutinspaket efter mönster för enhetsinstans-ID

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*

Som svar visar DevCon drivrutinsnoderna för enheter med ett enhetsinstans-ID som börjar med 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.

Exempel 12: Lista resurser för en klass med enheter

The following command uses the DevCon Resources operation to display the resources allocated to devices in the Hdc device setup class. Den här klassen innehåller IDE-styrenheter. Syntaxen föregår klassnamnet hdc med symbolen equals (=) för att indikera att det angivna värdet är en klass och inte ett ID.

devcon resources =hdc

Som svar listar DevCon de resurser som allokerats till IDE-styrenheter på den lokala datorn:

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.

Exempel 13: Lista resurser för enhet efter ID

The following command uses the DevCon Resources operation to list the resources allocated to the system timer. Kommandot använder maskinvaru-ID:t för systemtimern, ACPI\PNP0100, för att ange enheten.

devcon resources *PNP0100

Som svar visar DevCon systemtimerns resurser:

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

Följande kommando använder enhetsinstans-ID för systemtimern i DevCon-kommandot 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"

Exempel 14: Visa drivrutinsstacken för lagringsenheter

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. Likhetssymbolen (=) föregår strängen för att indikera att värdet är en klass och inte ett ID.

devcon stack =Volume

Som svar visar DevCon den förväntade stacken för enheterna i klassen Volym. De returnerade data innehåller följande information:

  • Enhetsinstans-ID och beskrivning av varje enhet
  • GUID och namnet på enhetsinstallationsklassen
  • Namn på övre och nedre filterdrivrutiner
  • Kontrollera tjänster (om några)
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.

Exempel 15: Hitta installationsklassen för en enhet

The DevCon Stack operation returns the setup class of a device in addition to the upper and lower filter drivers. Följande kommandon hittar installationsklassen för skrivarens portgränssnitt genom att hitta dess enhetsinstans-ID och sedan använda enhetsinstans-ID:t för att hitta installationsklassen.

The following command uses the DevCon HwIDs operation to find the device instance ID of the printer port interface. Den söker efter frasen "LPT" i skrivarportens maskinvaru-ID:

devcon hwids *lpt*

Som svar returnerar DevCon enhetsinstans-ID :t (visas i fetstil) och maskinvaru-ID för skrivarens portgränssnitt:

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. ID:t omges av citattecken (" ") eftersom det innehåller symbolen ampersand (&).

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

Som svar visar DevCon drivrutinsstacken för skrivarens portgränssnitt, inklusive klassen. Skärmen visar att skrivarporten finns i klassen 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. Den söker efter enheter i net-installationsklassen som har "miniport" i sitt maskinvaru-ID eller kompatibla ID.

Det här kommandot begränsar först sökningen till net-installationsklassen och hittar sedan strängen "miniport". Den hittar inte andra enheter än objekten i net-installationsklassen.

devcon stack =net *miniport*

Som svar visar DevCon den förväntade stacken för miniportdrivrutiner:

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.

Exempel 17: Visa status för alla enheter

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. Kommandot använder jokertecknet (*) för att representera alla enheter. It uses the redirection character (>) to save the command output in the specified file, status.txt.

devcon status * > status.txt

Exempel 18: Visa status för en enhet efter enhetsinstans-ID

Det mest tillförlitliga sättet att hitta status för en viss enhet är att använda enhetens enhetsinstans-ID.

The following command uses the device instance ID of the I/O controller on the local computer in a DevCon Status command. Kommandot innehåller enhetens instans-ID för enheten, 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. ID:t omges av citattecken (" ") eftersom det innehåller symbolen ampersand (&).

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

Som svar visar DevCon status för I/O-kontrollanten:

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. Den söker efter följande enheter:

  • Disk GenDisk
  • CD-ROM enhet, GenCdRom
  • Diskettenhet, FDC\GENERIC_FLOPPY_DRIVE
  • Volymer STORAGE\Volume
  • Logisk diskhanterare, ROOT\DMIO
  • Volymhanterare, ROOT\FTDISK
  • Diskettkontrollant, ACPI\PNP0700

I kommandot avgränsas varje ID från de andra med blanksteg. Observera att GenDisk och GenCdRom är kompatibla ID:er, medan de andra ID:na är maskinvaru-ID:er.

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

Som svar visar DevCon status för varje enhet:

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.

Exempel 20: Hitta enheter efter maskinvaru-ID-mönster

The following command uses the DevCon Find operation to search for mouse devices. Mer specifikt söker kommandot på datorn efter enheter med maskinvaru-ID eller kompatibla ID:t som innehåller frasen "mou":

devcon find *mou*

Som svar identifierar DevCon två musenheter:

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

Eftersom alla DevCon-visningsåtgärder också hittar maskinvaru-ID:er kan du använda valfri visningsåtgärd för att söka efter maskinvaru-ID:t. Välj åtgärden baserat på det innehåll som du behöver i utdata. Om du till exempel vill hitta enhetsdrivrutinerna för musrelaterade enheter på en lokal dator skickar du följande kommando:

devcon driverfiles *mou*

Som svar hittar DevCon enheterna och visar en lista över deras drivrutiner:

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.

Exempel 21: Hitta enheter efter enhetsinstans-ID eller klass

The following commands use the DevCon Find operation to display all legacy devices on the local computer. Eftersom äldre enheter inte har något maskinvaru-ID måste du söka efter dem efter deras enhetsinstans-ID (registersökväg), ROOT\LEGACYeller deras installationsklass. LegacyDriver

Det första kommandot hittar äldre drivrutiner med ett enhetsinstans-ID-mönster. 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*

Det andra kommandot hittar äldre enheter genom att söka efter alla enheter i klassen LegacyDriver:

devcon find =legacydriver

Båda kommandona ger samma utdata, i det här fallet att hitta samma 27 äldre enheter:

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.

Exempel 22: Hitta (och hitta alla) enheter i en installationsklass

The following command uses the DevCon FindAll operation to find all devices on the computer in the Net setup class. Symbolen equals (=) föregår klassnamnet "Net" för att indikera att det angivna värdet är en klass och inte ett ID.

devcon findall =net

Som svar listar DevCon följande sju enheter i net-installationsklassen. De första sex är standardenheter för miniportdrivrutiner. Den sjunde enheten, RAS-asynkron adapter, är en programvaruuppräknad enhet (SW\*) som endast installeras efter behov.

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

Som svar listar DevCon följande sex enheter i net-installationsklassen:

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.

Exempel 23: Visa filterdrivrutinerna för en installationsklass

The following command uses the DevCon ClassFilter operation to display the upper filter drivers for the DiskDrive setup class. Eftersom det här kommandot inte innehåller några klassfilteroperatorer visar DevCon filterdrivrutinerna för klassen, men ändrar dem inte.

devcon classfilter DiskDrive upper

Som svar visar DevCon de övre filterdrivrutinerna för DiskDrive-klassen och bekräftar att filterdrivrutinerna inte har ändrats. In this case, the display shows that devices in the DiskDrive setup class use the PartMgr.sys upper filter driver:

Class filters unchanged.
    PartMgr

Exempel 24: Lägga till en filterdrivrutin i en installationsklass

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.

När kommandot startar placeras den virtuella markören före den första filterdrivrutinen. Eftersom den inte är placerad på en viss drivrutin lägger DevCon till Disklog-drivrutinen i slutet av filterdrivrutinslistan.

Kommandot använder också parametern /r , som startar om systemet efter behov för att göra klassfiltrets ändring effektiv.

devcon /r classfilter DiskDrive upper +Disklog

Som svar visar DevCon de aktuella övre filterdrivrutinerna för DiskDrive-klassen:

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

Om du felstavar drivrutinsnamnet eller försöker lägga till en drivrutin som inte är installerad i systemet misslyckas kommandot. DevCon lägger inte till en drivrutin om inte drivrutinen är registrerad som en tjänst. That is, DevCon only adds the driver if it has a subkey in the Services registry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services subkey.

Följande kommando testar den här skyddsfunktionen. Den försöker lägga till "Disklgg" (i stället för "Disklog") i listan över övre filter för Klassen DiskDrive. Utdata visar att kommandot misslyckas:

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

Exempel 25: Infoga en filterdrivrutin i klasslistan

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

I följande lista visas filterdrivrutinerna för klassen DiskDrive innan kommandot skickas:

    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.

Kommandot använder också parametern /r , som startar om systemet efter behov för att göra klassfiltrets ändring effektiv.

Positioneringsoperatorn är viktig i det här exemplet. Innan DevCon bearbetar några klassfilterunderkommandon är den virtuella markören i början av listan och är inte placerad på några filterdrivrutiner. Om du använder operatorn add-before (+) när markören inte är placerad på en drivrutin lägger DevCon till drivrutinen i början av listan. Om du använder operatorn add-after (-) när markören inte är placerad på en drivrutin läggs drivrutinen till i slutet av listan.

Som svar visar DevCon de aktuella övre filterdrivrutinerna för DiskDrive-klassen:

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

Du kan också använda följande kommando för att lägga till Drivrutinen MyFilter och placera den mellan PartMgr och Disklog. I det här exemplet placerar den första underkommandot , @PartMgrden virtuella markören på PartMgr-filterdrivrutinen. The second subcommand, +MyFilter, uses the add-after operator (+) to add MyFilter.sys after PartMgr:

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Exempel 26: Ersätt en filterdrivrutin

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

I följande lista visas filterdrivrutinerna för klassen DiskDrive innan kommandot skickas:

    PartMgr
    MyFilter
    Disklog

Den första underkommandot använder borttagningsoperatorn (!utropstecknet) för att ta bort MyFilter från listan över övre filterdrivrutiner för klassen DiskDrive. (It doesn't affect the MyFilter.sys file in the C:\Windows\System32\Drivers directory location.)

Den andra underkommandot använder tilläggsoperatorn (+) för att placera den nya filterdrivrutinen i den position som tidigare upptogs av den borttagna drivrutinen. Eftersom borttagningsoperatorn lämnar markören i den position som det borttagna filtret upptog, har operatorerna add-before (-) och add-after (+) samma effekt.

Kommandot använder också parametern /r , som startar om systemet efter behov för att göra klassfiltrets ändring effektiv.

Som svar visar DevCon den nya klassfilterkonfigurationen för Klassen DiskDrive:

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

Exempel 27: Ändra ordningen på filterdrivrutiner

The following command uses the DevCon ClassFilter operation to change the order of filter drivers for the DiskDrive setup class. Mer specifikt ändrar den ordningen på de andra och tredje filterdrivrutinerna.

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

I följande lista visas filterdrivrutinerna för klassen DiskDrive innan kommandot skickas. Den visar också det avsedda resultatet av kommandot.

Before After
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

Den första underkommandot använder borttagningsoperatorn (!) för att ta bort Disklog från listan. 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. Startoperatorn är nödvändig eftersom den virtuella markören bara flyttas framåt genom listan. Den sista underkommandot använder tilläggsoperatorn (+) för att lägga till Disklog efter PartMgr.

Som svar visar DevCon den nya klassfilterkonfigurationen för Klassen DiskDrive:

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

Exempel 28: Aktivera en viss enhet

The following command uses the DevCon Enable operation to enable a previously disabled programmable interrupt controller. Den kontrollerade är inaktiverad och kan sedan återanvändas för att åtgärda ett systemproblem. Eftersom kontrollantens maskinvaru-ID i det här exemplet innehåller en asterisk (*PNP0000) använder kommandot det enkla citattecknet (') för att dirigera DevCon att hitta maskinvaru-ID:t exakt enligt vad som anges i kommandot. Om kommandot inte använde citattecknet (') i den här instansen tolkar DevCon asterisken (*) i värdet som ett jokertecken.

devcon enable '*PNP0000

Som svar visar DevCon enhetens instans-ID och förklarar att du måste starta om systemet för att aktivera enheten:

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.

Följande kommando lägger till parametern /r i föregående kommando. Parametern /r startar om systemet efter behov för att slutföra en åtgärd.

devcon /r enable '*PNP0000

Som svar aktiverar DevCon enheten och startar sedan om systemet för att aktivera åtgärden.

När systemet startar använder du ett DevCon-kommando status för att bekräfta att enheten är aktiverad:

devcon status '*PNP0000

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

Exempel 29: Aktivera enheter efter klass

The following command enables all printer devices on the computer by specifying the Printer setup class in a DevCon Enable command. Kommandot innehåller parametern /r som startar om systemet efter behov för att aktivera åtgärden.

devcon /r enable =Printer

Som svar visar DevCon enhetsinstans-ID för skrivaren som den hittade i klassen Skrivare och rapporterar att skrivaren är aktiverad. Även om kommandot innehåller parametern /r startas systemet inte om eftersom det inte krävs någon omstart för att aktivera skrivaren.

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

Exempel 30: Inaktivera enheter med ett ID-mönster

The following command uses the DevCon Disable operation to disable the USB devices on the local computer. Den identifierar enheterna med ett maskinvaru-ID-mönster (USB*). Det här mönstret matchar alla enheter med ett maskinvaru-ID eller kompatibelt ID som börjar med "USB". Kommandot innehåller parametern /r som startar om systemet efter behov för att inaktivera åtgärden.

Note

Innan du använder ett ID-mönster för att inaktivera en enhet ska du avgöra vilka enheter som kan påverkas. Använd mönstret i ett visningskommando, till exempel devcon status USB* eller devcon hwids USB*.

devcon /r disable USB*

Som svar visar DevCon enhetsinstans-ID:n för USB-enheterna och rapporterar att de är inaktiverade. Även om kommandot innehåller parametern /r startas systemet inte om eftersom en omstart inte krävs för att inaktivera enheterna.

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.

Exempel 31: Inaktivera enheter efter enhetsinstans-ID

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. Varje enhetsinstans-ID separeras från de andra med ett blanksteg.

När enhets-ID:t innehåller symbolen ampersand (&) omges värdet av citattecken (" "). Kommandot innehåller parametern /r som startar om systemet efter behov för att inaktivera åtgärden.

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

Som svar visar DevCon enhetsinstans-ID:n för USB-enheterna och rapporterar att de är inaktiverade. Även om kommandot innehåller parametern /r startas systemet inte om eftersom en omstart inte krävs för att inaktivera enheterna.

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.

Exempel 32: Uppdatera drivrutinen för kommunikationsportar

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. Kommandot påverkar endast enheter vars hela maskinvaru-ID är *PNP0501 (inklusive asterisken *).

Du kan använda det här kommandot för att ersätta signerade drivrutiner i systemet med alternativa drivrutiner för testning eller felsökning, eller för att associera enheterna med den senaste versionen av samma drivrutiner.

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.

Sedan visar DevCon följande meddelande:

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. Därför kan DevCon inte uppdatera drivrutinerna och visar ett felmeddelande:

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

Exempel 33: Installera en enhet

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

Som svar rapporterar DevCon att enheten har installerats. DevCon skapar alltså en enhetsnod för den nya enheten och uppdaterar drivrutinsfilerna för enheten.

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

Exempel 34: Installera en enhet med obevakad installation

I följande exempel visas hur du installerar Microsoft Loopback Adapter under en obevakad installation av 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).

Lägg sedan till följande DevCon-kommando i [GUIRunOnce] avsnittet i den obevakade installationsfilen:

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

Det här kommandot identifierar loopback-adaptern med hjälp av dess maskinvaru-ID, *MSLOOP. Det enkla citattecken (') som föregår värdet \*MSLOOP informerar DevCon att tolka strängen bokstavligen. Därför tolkar DevCon asterisken (*) som en del av maskinvaru-ID:t och inte som ett jokertecken.

The command also specifies that DevCon use the Netloop.inf file (on the floppy disk) in the installation. Parametern /r startar om datorn efter behov för att slutföra installationen.

Lägg slutligen till inställningar för nätverkskonfiguration i den obevakade installationsfilen och kör den obevakade installationen.

Exempel 35: Ta bort enheter efter enhetsinstans-ID-mönster

The following command uses the DevCon Remove operation to remove all USB devices from the computer. Den identifierar enheterna med ett ID-mönster för enhetsinstanser som matchar alla enhetsinstans-ID (registersökväg) som börjar med "USB"-strängen. The command uses the at symbol (@) to distinguish the device instance ID from a hardware ID or compatible ID. Kommandot innehåller också parametern /r som startar om systemet efter behov för att borttagningen ska vara effektiv.

Warning

Innan du använder ett ID-mönster för att ta bort en enhet ska du avgöra vilka enheter som kan påverkas. Använd mönstret i ett visningskommando, till exempel devcon status @usb\* eller devcon hwids @usb\*.

devcon /r remove @usb\*

Som svar visar DevCon enhetsinstans-ID för de borttagna enheterna:

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.

Exempel 36: Ta bort en viss nätverksenhet

The following command uses the DevCon Remove operation to uninstall the NDISWAN miniport driver from the local computer. Kommandot anger net-klassen och förfinar sedan sökningen genom att ange enheter i klassen vars maskinvaru-ID eller kompatibla ID inkluderar "ndiswan". Kommandot innehåller även parametern /r som startar om systemet efter behov för att borttagningen ska gälla.

Warning

Innan du använder ett ID-mönster för att ta bort en enhet ska du avgöra vilka enheter som kan påverkas. Använd mönstret i ett visningskommando, till exempel devcon status =net *ndiswan eller devcon hwids =net *ndiswan*.

devcon /r remove =net *ndiswan*

Som svar visar DevCon enhetsinstans-ID för den borttagna enheten:

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

Exempel 37: Sök igenom datorn efter nya enheter

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

devcon rescan

Som svar rapporterar DevCon att det genomsökt systemet men inte hittat några nya enheter:

Scanning for new hardware.
Scanning completed.

Exempel 38: Starta om en enhet

The following command uses the DevCon Restart operation to restart the loopback adapter on the local computer. Kommandot begränsar sökningen till net-installationsklassen och anger i den klassen enhetsinstans-ID för loopback-kortet, @'ROOT\*MSLOOP\0000.

The at symbol (@) identifies the string value as a device instance ID. Det enkla citattecknet (') informerar DevCon om att tolka strängen bokstavligen. Därför tolkar DevCon asterisken (*) som en del av ID:t och inte som ett jokertecken.

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

Som svar visar DevCon enhetens instans-ID och rapporterar resultatet:

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

Exempel 39: Starta om den lokala datorn

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.

Du kan inkludera det här kommandot i skript och batchfiler som kräver att systemet startas om.

devcon reboot

Som svar visar DevCon ett meddelande som anger att datorn startas om (den lokala datorn startas om).

DevCon uses the standard ExitWindowsEx function to reboot. Om användaren har öppna filer på datorn eller om ett program inte stängs startas inte systemet om. Den väntar tills användaren svarar på systemfrågor för att stänga filerna eller avsluta processen.

Exempel 40: Tilldela ett maskinvaru-ID till en äldre enhet

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

Kommandot använder enhetens ROOT\LEGACY_BEEP\0000 enhetsinstans-ID eftersom den äldre pipenheten inte har några maskinvaru-ID:n eller kompatibla ID:n. The command uses the at symbol (@) to indicate that the string is a device instance ID.

Kommandot använder inga symbolparametrar för att placera ID:t. Som standard lägger DevCon till nya maskinvaru-ID:n i slutet av en maskinvaru-ID-lista. I det här fallet är ID-placeringen irrelevant eftersom enheten inte har några andra maskinvaru-ID:n.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

Som svar visar DevCon ett meddelande som anger att det har lagts beep till i maskinvaru-ID-listan för enheten. Den visar också den resulterande maskinvaru-ID-listan. I det här fallet finns bara ett maskinvaru-ID i listan:

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

Exempel 41: Lägg till ett maskinvaru-ID till alla äldre enheter

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

Kommandot använder parametern minustecken (-) för att lägga till det nya maskinvaru-ID:t i slutet av maskinvaru-ID-listan för enheten, om det finns ett prioriterat maskinvaru-ID för någon av enheterna. Den använder också ett ID-mönster för enhetsinstanser, @ROOT\LEGACY*, för att identifiera äldre enheter på datorn, det vill sa alla enheter som har ett enhetsinstans-ID som börjar med ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

Som svar visar DevCon de resulterande maskinvaru-ID-listorna för alla berörda enheter:

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

När du har tilldelat samma maskinvaru-ID till en grupp med enheter kan du använda de andra DevCon-åtgärderna för att visa och ändra enheterna i ett enda kommando.

Följande kommando visar till exempel status för alla äldre enheter:

devcon status legacy

Exempel 42: Ta bort ett maskinvaru-ID från alla äldre enheter

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

Kommandot använder maskinvaru-ID legacy :t för att identifiera alla enheter som har det maskinvaru-ID:t. Den använder borttagningsoperatorn (!) för att ta bort maskinvaru-ID legacy :t.

devcon sethwid legacy := !legacy

Som svar visar DevCon de resulterande maskinvaru-ID-listorna för alla berörda enheter:

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

Exempel 43: Lägga till, ta bort och ersätta maskinvaru-ID:er

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. Innan DevCon-kommandon körs för enheten har enheten följande lista över maskinvaru-ID:n:

Hw3 Hw4

Följande kommando använder plussymbolen (+) för att lägga till ID-värdena Hw1 och Hw2 i början av en lista över maskinvaru-ID:n för DeviceX. Hw2 Eftersom ID:t redan visas i listan flyttas ID-värdet, inte läggs till. The command uses the at symbol (@) to identify the device by its device instance ID.

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

Som svar visar DevCon den nya maskinvaru-ID-listan för enheten. Värdena Hw1 och Hw2 ID visas i början av ID-listan i den angivna ordningen:

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

DevCon rapporterar också att det ändrade en maskinvaru-ID-lista, det vill: maskinvaru-ID-listan för en enda enhet.

Följande kommando använder borttagningsoperatorn (!) för att ta bort Hw1 maskinvaru-ID:t. Sedan visas maskinvaru-ID Hw5 :t utan en symbolparameter. 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

Som svar visar DevCon den resulterande maskinvaru-ID-listan för DeviceX:

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

Följande kommando använder parametern lika med (=) för att ersätta alla maskinvaru-ID:n i listan för DeviceX med ett enda maskinvaru-ID, DevX.

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

Som svar visar DevCon den resulterande maskinvaru-ID-listan för DeviceX:

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

Det lyckade meddelandet anger att DevCon ändrade maskinvaru-ID:t för en enhet.

Exempel 44: Tvinga HAL att uppdatera

I följande exempel visas hur du använder DevCon för att uppdatera HAL på datorn. Den aktuella HAL:n är en uniprocessor (_up) som skapats med ADVANCED Configuration and Power Interface (ACPI) och Advanced Programmable Interrupt Controller (APIC) efter behov för datorn. En testare vill ändra typen till en MULTIPROCESSOR (_mp) ACPI APIC HAL i testsyfte.

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. Kommandot använder plussymbolen (+) för att ange acpiapic_mp som det första maskinvaru-ID:t i listan för HAL. Kommandot använder borttagningsoperatorn (!) för att ta bort acpiapic_up maskinvaru-ID:t från listan över ID:t för HAL.

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

Som svar visar DevCon följande nya maskinvaru-ID-lista för 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

Sedan visar DevCon följande meddelande:

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

Exempel 45: Lägga till och ta bort drivrutinspaket

I följande exempel visas hur du använder DevCon för att lägga till, ta bort och visa oem-drivrutinspaket från tredje part i drivrutinsarkivet.

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. Kommandot innehåller den fullständigt kvalificerade sökvägen till INF-filen för brödrostens exempeldrivrutin.

Det här kommandot är avsett för OEM-drivrutiner och enheter från tredje part, men du kan använda Toaster-exemplet för att testa kommandona.

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.

Innan INF-filen kopieras till drivrutinsarkivet jämför Windows den binära versionen av filen med liknande filer i drivrutinsarkivet. Den kontrollerar att det inte finns några binära filer med samma INF-namn. 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. Den rapporterar bara namnet på den befintliga filen, enligt följande DevCon-utdata:

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.

Följande kommando visar alla OEM-drivrutinspaket och några av deras egenskaper:

devcon dp_enum

Som svar genererar DevCon följande utdata:

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. Du kan använda den här informationen för att ta bort drivrutinspaketet som är associerat med filen.

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

Som svar visar DevCon ett meddelande som anger att kommandot lyckades:

Driver Package 'oem2.inf' deleted.

The OEM.inf* file name is required in the DevCon Dp_delete operation. Om du försöker använda det ursprungliga namnet på INF-filen misslyckas kommandot, vilket visas i följande DevCon-utdata:

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