Beispiele für die Gerätekonsole (DevCon.exe)

Wichtig

PnPUtil wird mit jeder Windows-Version ausgeliefert und verwendet die zuverlässigsten und sichersten APIs, die verfügbar sind und deren Verwendung empfohlen wird. Weitere Informationen zur Verwendung von PnPutil anstelle von Devcon finden Sie unter Ersetzen von DevCon.

Beispielkatagories

Dieser Abschnitt enthält Beispiele für die folgenden Gerätekonsolenbefehle (DevCon.exe):

DevCon HwIDs

DevCon Classes

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon Resources

DevCon Stack

DevCon Status

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon Enable

DevCon Disable

DevCon Update und UpdateNI

DevCon Install

DevCon Remove

DevCon Rescan

DevCon Restart

DevCon Reboot

DevCon SetHwID

DevCon dp_add, dp_deleted, dp_enum

Beispieldetails

Beispiel 1: Suchen aller Hardware-IDs

Da DevCon-Vorgänge IDs und ID-Muster verwenden, um Geräte zu identifizieren, besteht ein allgemeiner erster Schritt bei der Verwendung von DevCon darin, eine Hardware-ID-Referenzdatei für Geräte auf dem Computer zu erstellen.

Der folgende Befehl verwendet den DevCon HwIDs-Vorgang , der die IDs und die Gerätebeschreibung zurückgibt. Es verwendet das Wild Karte Zeichen (*) zum Darstellen aller Geräte auf dem lokalen Computer.

devcon hwids *

Da die Ausgabe langwierig ist und wiederholt verwendet wird, speichern Sie die Ausgabe in einer Textdatei zur Referenz.

Mit dem folgenden Befehl wird das Wild Karte Zeichen (*) verwendet, um alle Geräte auf dem Computer darzustellen. Es verwendet das Umleitungszeichen (>), um die Befehlsausgabe in der hwids.txt Datei zu speichern.

devcon hwids * > hwids.txt

Beispiel 2: Suchen von Hardware-IDs mithilfe eines Musters

Um die Hardware-IDs eines bestimmten Geräts zu finden, geben Sie die Hardware-ID oder das Muster, die kompatible ID oder das Muster, die Geräteinstanz-ID oder das Muster oder den Namen der Geräteeinrichtungsklasse ein.

Der folgende Befehl verwendet den DevCon HwIDs-Vorgang und ein Muster, um die Hardware-IDs des Diskettenlaufwerks auf dem Computer zu finden. (Der Benutzer geht davon aus, dass das Muster in einem der Gerätebezeichner angezeigt wird.) Mit dem Befehl wird das Wild Karte Zeichen (*) verwendet, um alle Zeichen darzustellen, die dem Wort "Floppy" in einer der IDs vorangehen oder folgen können.

devcon hwids *floppy*

Als Reaktion zeigt DevCon die Geräteinstanz-ID, Hardware-ID und kompatible ID des Diskettenlaufwerks auf dem Computer an. Sie können diese IDs in nachfolgenden DevCon-Befehlen verwenden.

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 diesem Fall tritt der Ausdruck "Floppy" in der Hardware-ID oder kompatiblen ID nur eines Geräts auf dem Computer auf. Wenn sie in der ID mehrerer Geräte auftritt, werden alle Geräte mit "Floppy" in ihren IDs in der Ausgabe angezeigt.

Beispiel 3: Suchen von Hardware-IDs mithilfe einer Klasse

Der folgende Befehl verwendet den DevCon HwIDs-Vorgang und eine Geräteeinrichtungsklasse, um die Hardware-IDs aller Geräte in der Ports-Geräteeinrichtungsklasse zu finden. Das Gleichheitszeichen (=) vor dem Klassennamen gibt an, dass es sich um eine Klasse und nicht um eine ID handelt.

devcon hwids =ports

Als Reaktion zeigt DevCon die Hardware-IDs und kompatible IDs der drei Geräte in der Ports-Setupklasse an.

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.

Beispiel 4: Auflisten von Klassen auf dem lokalen Computer

Da DevCon-Vorgänge die Gerätesetupklasse zum Identifizieren von Geräten verwenden können, ist es hilfreich, eine Referenzdatei der Geräteeinrichtungsklassen auf dem Computer zu erstellen.

Der folgende Befehl verwendet den DevCon Classes-Vorgang , der eine Liste und Beschreibung aller Klassen auf dem Computer zurückgibt.

devcon classes

Da die Ausgabe langwierig ist und wiederholt verwendet wird, speichern Sie die Ausgabe in einer Textdatei zur Referenz.

Mit dem folgenden Befehl werden alle Geräteklassen auf dem Computer angezeigt. Es verwendet das Umleitungszeichen (>) zum Speichern der Befehlsausgabe in der classes.txt Datei.

devcon classes > classes.txt

Beispiel 6: Auflisten der Geräte in einer Geräteeinrichtungsklasse

Der folgende Befehl verwendet den DevCon ListClass-Vorgang zum Auflisten der Geräte in Net, der Geräteeinrichtungsklasse für Netzwerkadapter.

devcon listclass net

Als Reaktion zeigt DevCon die Geräteinstanz-ID und die Beschreibung der einzelnen Geräte in der Net-Setupklasse an.

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

Diese Anzeige stellt zwar zwar interessant, aber nicht die Hardware-IDs der Geräte in der Net-Setupklasse bereit. Der folgende Befehl verwendet den DevCon HwIDs-Vorgang , um die Geräte in der Net-Setupklasse auflisten. In einem DevCon HwIDs-Befehl wird dem Klassennamen ein Gleichheitszeichen (=) vorangestellt, um anzugeben, dass es sich um eine Klasse und nicht um eine ID handelt.

devcon hwids =net

Die resultierende Anzeige listet die Geräte in der Net-Klasse auf und enthält die Geräteinstanz-ID, Hardware-IDs und kompatible IDs von Geräten in der Klasse.

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.

Beispiel 7: Auflisten der Geräte in mehreren Klassen

Der folgende Befehl verwendet den DevCon ListClass-Vorgang , um die Geräte in den Klassen DiskDrive, CDROM und TapeDrive auflisten.

devcon listclass diskdrive cdrom tapedrive

Als Reaktion zeigt DevCon die Geräte in diesen Klassen an.

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

Beispiel 8: Auflisten aller Treiberdateien

Der folgende Befehl verwendet den DevCon DriverFiles-Vorgang , um die Dateinamen von Treibern auflisten, die Geräte auf dem System verwenden. Der Befehl verwendet das Wild Karte Zeichen (*), um alle Geräte auf dem System anzugeben. Da die Ausgabe umfangreich ist, verwendet der Befehl das Umleitungszeichen (>), um die Ausgabe an eine Referenzdatei driverfiles.txt umzuleiten.

devcon driverfiles * > driverfiles.txt

Beispiel 9: Auflisten der Treiberdateien eines bestimmten Geräts

Der folgende Befehl verwendet den DevCon DriverFiles-Vorgang , um nach dem Gerätetreiber zu suchen, den das Mausgerät auf dem lokalen Computer verwendet. Es identifiziert das Gerät anhand einer seiner Hardware-IDs, HID\Vid_045e&Pid_0039&Rev_0121. Die Hardware-ID ist in Anführungszeichen eingeschlossen, da sie das kaufmännische Und-Zeichen (&) enthält.

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

Als Reaktion zeigt DevCon die beiden Gerätetreiber an, die das Mausgerät unterstützen.

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.

Beispiel 10: Auflisten von Treiberpaketen nach Hardware-ID-Muster

Der folgende Befehl verwendet den DevCon DriverNodes-Befehl und ein ID-Muster, um die Treiberknoten von softwareumerierten Geräten auflisten zu können. Muster sind hilfreich, um Informationen zu ähnlichen Geräten zu finden, die sich möglicherweise nicht in derselben Setupklasse befinden.

Der folgende Befehl verwendet das ID-Muster sw\* zum Angeben von Geräten, deren Hardware-IDs oder kompatible IDs mit "sw" beginnen, d. h. softwareumerierte Geräte.

devcon drivernodes sw*

Als Reaktion zeigt DevCon die Treiberknoten von Software-enumerierten Geräten auf dem System an.

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.

Beispiel 11: Auflisten von Treiberpaketen nach Geräteinstanz-ID-Muster

Der folgende Befehl verwendet den DevCon DriverNodes-Vorgang , um die Treiberpakete aller Geräte auflisten, deren Geräteinstanz-IDs mit ROOT\MEDIA beginnen, d. h. Geräte im Registrierungsunterschlüssel "Enum\Root\Media". Der Befehl verwendet das At-Zeichen (@), um anzugeben, dass sich der Ausdruck in der Geräteinstanz-ID befindet.

devcon drivernodes @ROOT\MEDIA*

Als Reaktion zeigt DevCon die Treiberknoten von Geräten an, deren Geräteinstanz-ID mit "ROOT\MEDIA" beginnt.

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.

Beispiel 12: Auflisten von Ressourcen einer Geräteklasse

Der folgende Befehl verwendet den DevCon Resources-Vorgang , um die Ressourcen anzuzeigen, die Geräten in der Hdc-Gerätesetupklasse zugeordnet sind. Diese Klasse enthält IDE-Controller. Das Gleichheitszeichen (=) wird "hdc" vorangestellt, um anzugeben, dass es sich um eine Klasse und nicht um eine ID handelt.

devcon resources =hdc

Als Antwort listet DevCon die Ressourcen auf, die IDE-Controllern auf dem lokalen Computer zugeordnet sind.

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.

Beispiel 13: Auflisten von Geräteressourcen nach ID

Der folgende Befehl verwendet den DevCon Resources-Vorgang , um die dem Systemzeitgeber zugeordneten Ressourcen auflisten zu können. Der Befehl verwendet die Hardware-ID des Systemzeitgebers ACPI\PNP0100, um das Gerät anzugeben.

devcon resources *PNP0100

Als Reaktion zeigt DevCon die Ressourcen des Systemzeitgebers an.

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

Der folgende Befehl verwendet die Geräteinstanz-ID des Systemzeitgebers im DevCon-Ressourcenbefehl. Das At-Zeichen (@) gibt an, dass die Zeichenfolge eine Geräteinstanz-ID, keine Hardware-ID oder kompatible ID ist.

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

Beispiel 14: Anzeigen des Treiberstapels für Speichergeräte

Der folgende Befehl verwendet den DevCon Stack-Vorgang , um nach Geräten in der Volume-Setupklasse zu suchen und den erwarteten Treiberstapel für diese Geräte anzuzeigen. Das Gleichheitszeichen (=) gibt an, dass die Zeichenfolge ein Klassenname ist.

devcon stack =Volume

Als Reaktion zeigt DevCon den erwarteten Stapel für die Geräte in der Volume-Klasse an. Die zurückgegebenen Daten enthalten die Geräteinstanz-ID und die Beschreibung der einzelnen Geräte, die GUID und den Namen der Geräteeinrichtungsklasse, die Namen der oberen und unteren Filtertreiber sowie die Steuerungsdienste (falls vorhanden).

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.

Beispiel 15: Suchen der Setupklasse eines Geräts

Der DevCon Stack-Vorgang gibt zusätzlich zu den oberen und unteren Filtertreibern die Setupklasse eines Geräts zurück. Die folgenden Befehle finden die Setupklasse der Druckerportschnittstelle, indem sie die Geräteinstanz-ID finden und dann die Geräteinstanz-ID verwenden, um die Setupklasse zu finden.

Der folgende Befehl verwendet den DevCon HwIDs-Vorgang , um die Geräteinstanz-ID der Druckerportschnittstelle mithilfe von "LPT" zu finden, ein Ausdruck in der Hardware-ID des Druckerports.

devcon hwids *lpt*

Als Reaktion gibt DevCon die Geräteinstanz-ID (in Fettschrift angezeigt) und die Hardware-ID der Druckerportschnittstelle zurück.

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

Der nächste Befehl verwendet den DevCon Stack-Vorgang , um die Geräteeinrichtungsklasse des Geräts zu finden, das durch die Geräteinstanz-ID dargestellt wird. Ein at-Zeichen (@) identifiziert die ID als Geräteinstanz-ID. Die ID ist in Anführungszeichen eingeschlossen, da sie kaufmännische Und-Zeichen enthält.

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

Als Reaktion zeigt DevCon den Treiberstapel für die Druckerportschnittstelle an, einschließlich der Klasse. Die Anzeige zeigt an, dass sich der Druckeranschluss in der Systemklasse befindet.

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.

Der folgende Befehl verwendet den DevCon Stack-Vorgang , um den erwarteten Stapel für Miniporttreibergeräte anzuzeigen. Es sucht nach Geräten in der Net-Setupklasse, die "miniport" in ihrer Hardware-ID oder kompatiblen ID haben.

Beachten Sie, dass dieser Befehl zuerst die Suche auf die Net-Setupklasse beschränkt und dann die Zeichenfolge "miniport" findet. Es werden keine anderen Geräte als die in der Net-Setupklasse gefunden.

devcon stack =net *miniport*

Als Reaktion zeigt DevCon den erwarteten Stapel für Miniporttreiber an.

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.

Beispiel 17: Anzeigen des Status aller Geräte

Der folgende Befehl verwendet den DevCon-Statusvorgang , um den Status aller Geräte auf dem lokalen Computer zu ermitteln. Anschließend wird der Status in der status.txt Datei zur Protokollierung oder späteren Überprüfung gespeichert. Der Befehl verwendet das Wild Karte Zeichen (*) zum Darstellen aller Geräte und des Umleitungszeichens (>) zum Umleiten der Ausgabe an die status.txt Datei.

devcon status * > status.txt

Beispiel 18: Anzeigen des Status eines Geräts nach Geräteinstanz-ID

Die zuverlässigste Möglichkeit, den Status eines bestimmten Geräts zu finden, besteht darin, die Geräteinstanz-ID des Geräts zu verwenden.

Der folgende Befehl verwendet die Geräteinstanz-ID des E/A-Controllers auf dem lokalen Computer in einem DevCon-Statusbefehl. Der Befehl enthält die Geräteinstanz-ID des Geräts, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. Das "at"-Zeichen (@) mit dem Präfix "ID" identifiziert die Zeichenfolge als Geräteinstanz-ID. Die ID muss in Anführungszeichen eingeschlossen werden, da sie kaufmännische Und-Zeichen enthält.

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

Als Reaktion zeigt DevCon den Status des E/A-Controllers an.

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.

Der folgende Befehl verwendet den DevCon-Statusvorgang , um den Status bestimmter speicherbezogener Geräte anzuzeigen. Es sucht nach den folgenden Geräten:

  • Laufwerk, GenDisk

  • CD-ROM-Laufwerk, GenCdRom

  • Diskettenlaufwerk, FDC\GENERIC_FLOPPY_DRIVE

  • Volumes, STORAGE\Volume

  • Logischer Datenträger-Manager, ROOT\DMIO

  • Volume-Manager, ROOT\FTDISK

  • Diskettencontroller, ACPI\PNP0700

Im Befehl wird jede ID durch Leerzeichen von den anderen getrennt. Beachten Sie, dass GenDisk und GenCdRom kompatible IDs sind, während die anderen IDs Hardware-IDs sind.

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

Als Reaktion zeigt DevCon den Status der einzelnen Geräte an.

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.

Beispiel 20: Suchen von Geräten nach Hardware-ID-Muster

Der folgende Befehl verwendet den DevCon Find-Vorgang , um nach Mausgeräten zu suchen. Insbesondere durchsucht der Befehl den Computer nach Geräten, deren Hardware-ID oder kompatible ID "mou" enthält, und würde keinen "Moose"-Treiber finden.

devcon find *mou*

In diesem Fall fand DevCon beide Mausgeräte.

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

Da alle DevCon-Anzeigevorgänge auch Hardware-IDs finden, können Sie jeden Anzeigevorgang verwenden, um nach Hardware-IDs zu suchen. Wählen Sie den Vorgang basierend auf dem Inhalt aus, den Sie in der Ausgabe benötigen. Um beispielsweise die Gerätetreiber zu finden, die mausbezogene Geräte auf einem lokalen Computer verwenden, übermitteln Sie den folgenden Befehl.

devcon driverfiles *mou*

Als Reaktion findet DevCon die Geräte und listet ihre Treiber auf.

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.

Beispiel 21: Suchen von Geräten nach Geräteinstanz-ID oder -Klasse

Die folgenden Befehle verwenden den DevCon Find-Vorgang , um alle älteren Geräte auf dem lokalen Computer anzuzeigen. Da ältere Geräte nicht über eine Hardware-ID verfügen, müssen Sie nach der Geräteinstanz-ID (Registrierungspfad), ROOT\LEGACY oder der Setupklasse LegacyDriver suchen.

Der erste Befehl findet Legacytreiber nach einem Geräteinstanz-ID-Muster. Das ID-Muster wird durch das At-Zeichen (@) vorgestellt, um eine Geräteinstanz-ID anzugeben, gefolgt von dem Platz Karte Zeichen (*), um alle Geräte im Unterschlüssel "ROOT\Legacy" zu finden.

devcon find @root\legacy*

Der zweite Befehl findet Legacygeräte, indem nach allen Geräten in der LegacyDriver-Klasse gesucht wird.

devcon find =legacydriver

Beide Befehle erzeugen die gleiche Ausgabe, in diesem Fall die gleichen 27 älteren Geräte zu finden.

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.

Beispiel 22: Suchen (und Suchen aller) Geräte in einer Setupklasse

Der folgende Befehl verwendet den DevCon FindAll-Vorgang , um alle Geräte auf dem Computer in der Net-Setupklasse zu finden. Das Gleichheitszeichen (=) gibt an, dass Net eine Setupklasse und keine ID ist.

devcon findall =net

Als Antwort listet DevCon die folgenden sieben Geräte in der Net-Setupklasse auf. Die ersten sechs sind Standard-Miniporttreibergeräte. Das siebte Gerät, der RAS-asynchrone Adapter, ist ein softwareaufgezähltes Gerät (SW\*), das erst installiert wird, wenn er benötigt wird.

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.

Der folgende Befehl vergleicht die DevCon Find - und DevCon FindAll-Vorgänge , indem ein DevCon Find-Befehl mit denselben Parametern wie der vorherige DevCon FindAll-Befehl ausgeführt wird.

devcon find =net

Als Antwort listet DevCon die folgenden sechs Geräte in der Net-Setupklasse auf.

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.

Vorhersagbar führt der DevCon Find-Befehl, der nur derzeit installierte Geräte zurückgibt, nicht das aufgezählte Gerät auf, da das Gerät nicht installiert ist.

Beispiel 23: Anzeigen der Filtertreiber für eine Setupklasse

Der folgende Befehl verwendet den DevCon ClassFilter-Vorgang , um die oberen Filtertreiber für die DiskDrive-Setupklasse anzuzeigen. Da dieser Befehl keine Klassenfilteroperatoren enthält, zeigt DevCon die Filtertreiber für die Klasse an, ändert sie jedoch nicht.

devcon classfilter DiskDrive upper

Als Reaktion zeigt DevCon die oberen Filtertreiber für die DiskDrive-Klasse an und bestätigt, dass sie sie nicht geändert hat. In diesem Fall zeigt die Anzeige an, dass Geräte in der DiskDrive-Setupklasse den PartMgr.sys oberen Filtertreiber verwenden.

Class filters unchanged.
    PartMgr

Beispiel 24: Hinzufügen eines Filtertreibers zu einer Setupklasse

Der folgende Befehl verwendet den DevCon ClassFilter-Vorgang , um der Liste der oberen Filtertreiber für die DiskDrive-Setupklasse einen fiktiven Filter Disklog.sys hinzuzufügen.

Dieser Befehl verwendet den Add-After(+) ClassFilter-Operator, um den Disklog-Treiber nach dem PartMgr-Treiber zu laden, sodass er Daten empfängt, die PartMgr.sys bereits verarbeitet hat.

Wenn der Befehl gestartet wird, wird der virtuelle Cursor vor dem ersten Filtertreiber positioniert. Da er nicht auf einem bestimmten Treiber positioniert ist, fügt DevCon den Disklog-Treiber am Ende der Filtertreiberliste hinzu.

Der Befehl verwendet auch den Parameter "/r ", der das System neu startet, wenn dies erforderlich ist, um die Änderung des Klassenfilters wirksam zu machen.

devcon /r classfilter DiskDrive upper +Disklog

Als Reaktion zeigt DevCon die aktuellen oberen Filtertreiber für die DiskDrive-Klasse an.

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

Wenn Sie den Treibernamen falsch geschrieben haben oder versuchen, einen Treiber hinzuzufügen, der nicht auf dem System installiert ist, schlägt der Befehl fehl. DevCon fügt keinen Treiber hinzu, es sei denn, der Treiber ist als Dienst registriert, d. h., es sei denn, der Treiber verfügt über einen Unterschlüssel im Registrierungsunterschlüssel "Dienste" (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services).

Mit dem folgenden Befehl wird dieses Schutzfeature getestet. Es wird versucht, der Liste der oberen Filter für die DiskDrive-Klasse "Disklgg" (anstelle von "Disklog") hinzuzufügen. Die Ausgabe zeigt, dass der Befehl fehlschlägt.

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

Beispiel 25: Einfügen eines Filtertreibers in die Klassenliste

Der folgende Befehl verwendet den DevCon ClassFilter-Vorgang , um der Liste der oberen Filtertreiber für die DiskDrive-Setupklasse einen fiktiven Filtertreiber MyFilter.sys hinzuzufügen. Der Befehl platziert MyFilter.sys zwischen PartMgr.sys und Disklog.sys in der Ladereihenfolge.

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

In der folgenden Liste sind die Filtertreiber für die DiskDrive-Klasse aufgeführt, bevor der Befehl übermittelt wird.

    PartMgr
    Disklog

Der erste Unterbefehl, @Disklog, verwendet den Positionierungsoperator (@), um den virtuellen Cursor auf den Disklog-Filtertreiber zu platzieren. Der zweite Unterbefehl - MyFilter verwendet den Add-Before-Operator (-), um MyFilter.sys vor Disklog.sys hinzuzufügen.

Der Befehl verwendet auch den Parameter "/r ", der das System neu startet, wenn dies erforderlich ist, um die Änderung des Klassenfilters wirksam zu machen.

Der Positionierungsoperator ist in diesem Beispiel unerlässlich. Bevor DevCon Klassenfilter-Unterbefehle verarbeitet, befindet sich der virtuelle Cursor am Anfang der Liste und wird nicht auf Filtertreibern positioniert. Wenn Sie den Add-Before-Operator (+) verwenden, wenn sich der Cursor nicht auf einem Treiber befindet, fügt DevCon den Treiber am Anfang der Liste hinzu. Wenn Sie den Add-After-Operator (-) verwenden, wenn der Cursor nicht auf einem Treiber positioniert ist, wird der Treiber am Ende der Liste hinzugefügt.

Als Reaktion zeigt DevCon die aktuellen oberen Filtertreiber für die DiskDrive-Klasse an.

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

Sie können auch den folgenden Befehl verwenden, um den MyFilter-Treiber hinzuzufügen und ihn zwischen PartMgr und Disklog zu platzieren. In diesem Beispiel positioniert der erste Unterbefehl @PartMgr den virtuellen Cursor auf dem PartMgr-Filtertreiber. Der zweite Unterbefehl + MyFilter verwendet den Add-After-Operator (+), um MyFilter.sys nach PartMgr hinzuzufügen.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

Beispiel 26: Ersetzen eines Filtertreibers

Der folgende Befehl verwendet den DevCon ClassFilter-Vorgang , um die ursprüngliche Kopie von MyFilter.sys durch eine neue und verbesserte Version MyNewFilter.sys in der Liste der Filtertreiber für die DiskDrive-Setupklasse zu ersetzen.

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

In der folgenden Liste sind die Filtertreiber für die DiskDrive-Klasse aufgeführt, bevor der Befehl übermittelt wird.

    PartMgr
    MyFilter
    Disklog

Der erste Unterbefehl verwendet den Löschoperator (!), um MyFilter aus der Liste der oberen Filtertreiber für die DiskDrive-Klasse zu löschen. (Es wirkt sich nicht auf die MyFilter.sys Datei im Verzeichnis "C:\Windows\System32\Drivers" aus.)

Der zweite Unterbefehl verwendet den Add-After-Operator (+), um den neuen Filtertreiber an der Position zu platzieren, die der gelöschte Treiber belegt hat. Da der Löschoperator den Cursor an der Position hinterlässt, an der der gelöschte Filter belegt ist, haben die Operatoren Add-before (-) und Add-After (+) denselben Effekt.)

Der Befehl verwendet auch den Parameter "/r ", der das System neu startet, wenn dies erforderlich ist, um die Änderung des Klassenfilters wirksam zu machen.

Als Reaktion zeigt DevCon die neue Klassenfilterkonfiguration für die DiskDrive-Klasse an.

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

Beispiel 27: Ändern der Reihenfolge von Filtertreibern

Der folgende Befehl verwendet den DevCon ClassFilter-Vorgang , um die Reihenfolge der Filtertreiber für die DiskDrive-Setupklasse zu ändern. Insbesondere wird die Reihenfolge der zweiten und dritten Filtertreiber umgekehrt.

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

In der folgenden Liste sind die Filtertreiber für die DiskDrive-Klasse aufgeführt, bevor der Befehl übermittelt wird. Außerdem wird das beabsichtigte Ergebnis des Befehls angezeigt.

Vorher After
PartMgr PartMgr
MyNewFilter Datenträgerprotokoll
Datenträgerprotokoll MyNewFilter

Der erste Unterbefehl verwendet den Löschoperator (!) zum Löschen des Datenträgerprotokolls aus der Liste. Der zweite Unterbefehl verwendet den Startoperator (=), um den virtuellen Cursor zurück zur Startposition zu verschieben, und verwendet dann den Positionierungsoperator (@), um den Cursor auf den PartMgr-Treiber zu platzieren. Der Startoperator ist erforderlich, da der virtuelle Cursor nur vorwärts durch die Liste bewegt wird. Der letzte Unterbefehl verwendet den Add-After-Operator (+), um disklog nach PartMgr hinzuzufügen.

Als Reaktion zeigt DevCon die neue Klassenfilterkonfiguration für die DiskDrive-Klasse an.

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

Beispiel 28: Aktivieren eines bestimmten Geräts

Der folgende Befehl verwendet den DevCon Enable-Vorgang , um einen programmierbaren Interruptcontroller zu aktivieren, der deaktiviert wurde, um ein Systemproblem zu beheben. Da die Controllerhardware-ID *PNP0000 ein Sternchen enthält, verwendet der Befehl das einzelne Anführungszeichen ('), um DevCon zu leiten, um die Hardware-ID genau wie im Befehl angegeben zu finden. Andernfalls wird das Sternchen als ein Wild Karte Zeichen interpretiert.

devcon enable '*PNP0000

Als Reaktion zeigt DevCon die Geräteinstanz-ID des Geräts an und erläutert, dass Sie das System neu starten müssen, um das Gerät zu aktivieren.

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

Sie können reagieren, indem Sie das System entweder manuell oder mithilfe des DevCon-Neustartvorgangs neu starten.

Mit dem folgenden Befehl wird dem vorherigen Befehl der Parameter "/r " hinzugefügt. Der Parameter "/r " startet das System nur neu, wenn ein Neustart erforderlich ist, um einen Vorgang abzuschließen.

devcon /r enable '*PNP0000

Als Reaktion ermöglicht DevCon das Gerät und startet dann das System neu, um die Aktivierung effektiv zu machen.

Wenn das System gestartet wird, verwenden Sie einen DevCon-Statusbefehl, um zu bestätigen, dass das Gerät aktiviert ist.

devcon status '*PNP0000

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

Beispiel 29: Aktivieren von Geräten nach Klasse

Mit dem folgenden Befehl werden alle Druckergeräte auf dem Computer aktiviert, indem die Druckereinrichtungsklasse in einem DevCon Enable-Befehl angegeben wird. Der Befehl enthält den Parameter "/r ", der das System neu startet, falls erforderlich, um die Aktivierung wirksam zu machen.

devcon /r enable =Printer

Als Reaktion zeigt DevCon die Geräteinstanz-ID des Druckers an, der in der Printer-Klasse gefunden wurde, und meldet, dass er aktiviert ist. Obwohl der Befehl den Parameter "/r " enthielt, wurde der System nicht neu gestartet, da kein Neustart erforderlich war, um den Drucker zu aktivieren.

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

Beispiel 30: Deaktivieren von Geräten durch ein ID-Muster

Der folgende Befehl verwendet den DevCon Disable-Vorgang , um die USB-Geräte auf dem lokalen Computer zu deaktivieren. Es identifiziert die Geräte durch ein Hardware-ID-Muster (USB*). Dieses Muster entspricht jedem Gerät, dessen Hardware-ID oder kompatible ID mit "USB" beginnt. Der Befehl enthält den Parameter "/r ", der das System neu startet, wenn die Deaktivierung wirksam wird.

Hinweis Bevor Sie ein ID-Muster verwenden, um ein Gerät zu deaktivieren, bestimmen Sie, welche Geräte betroffen sind. Verwenden Sie dazu das Muster in einem Anzeigebefehl, z . B. devcon status USB\* oder devcon hwids USB\*.

devcon /r disable USB*

Als Reaktion zeigt DevCon die Geräteinstanz-IDs der USB-Geräte an und meldet, dass sie deaktiviert sind. Obwohl der Befehl den Parameter "/r " enthielt, wurde der Systemstart nicht neu gestartet, da kein Neustart erforderlich war, um die Geräte zu deaktivieren.

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.

Beispiel 31: Deaktivieren von Geräten nach Geräteinstanz-ID

Der folgende Befehl verwendet den DevCon Disable-Vorgang , um die USB-Geräte auf dem lokalen Computer zu deaktivieren. Mit diesem Befehl werden die Geräte anhand ihrer Geräteinstanz-IDs identifiziert, wie durch das "at"-Zeichen (@) angegeben, das jeder ID vorausgeht. Jede Geräteinstanz-ID wird von den anderen durch ein Leerzeichen getrennt.

Da die Geräteinstanz-IDs auch das kaufmännische Und-Zeichen (&) enthalten, werden sie in Anführungszeichen eingeschlossen. Der Befehl enthält den Parameter "/r ", der das System neu startet, wenn die Deaktivierung wirksam wird.

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

Als Reaktion zeigt DevCon die Geräteinstanz-IDs der USB-Geräte an und meldet, dass sie deaktiviert sind. Obwohl der Befehl den Parameter "/r " enthielt, wurde der Systemstart nicht neu gestartet, da kein Neustart erforderlich war, um die Geräte zu deaktivieren.

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.

Beispiel 32: Aktualisieren des Treibers für Kommunikationsports

Der folgende Befehl verwendet den DevCon Update-Vorgang, um den aktuellen Gerätetreiber für Kommunikationsports im System durch einen testtreiber zu ersetzen, der in der Datei "test.inf" angegeben ist. Der Befehl betrifft nur Geräte, deren gesamte Hardware-ID *PNP0501 ist (einschließlich des Sternchens).

Mit diesem Befehl können Sie signierte Treiber im System durch alternative Treiber zum Testen oder Zur Problembehandlung ersetzen oder die Geräte mit der neuesten Version derselben Treiber verknüpfen.

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

Als Reaktion zeigt DevCon eine Hardwareinstallationswarnung an, in der erläutert wird, dass der Treiber keine Windows-Logo-Tests bestanden hat. Wenn Sie im Dialogfeld die Schaltfläche "Trotzdem fortsetzen" auswählen, wird die Installation fortgesetzt.

Anschließend zeigt DevCon die folgende Erfolgsmeldung an.

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

Sie können auch den DevCon UpdateNI-Vorgang, die nichtinteraktive Version des DevCon Update-Vorgangs, verwenden, um Treiber zu aktualisieren. Der DevCon UpdateNI-Vorgang ist identisch mit dem DevCon Update-Vorgang , außer dass er alle Benutzeraufforderungen unterdrückt, die eine Antwort erfordern, und geht von der Standardantwort an die Eingabeaufforderung aus.

Der folgende Befehl verwendet den DevCon UpdateNI-Vorgang , um den Testtreiber zu installieren.

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

In diesem Fall zeigt DevCon die Hardwareinstallationswarnung nicht an. Stattdessen wird davon ausgegangen, dass die Standardantwort " Installation beenden" verwendet wird. Daher kann DevCon die Treiber nicht aktualisieren und zeigt eine Fehlermeldung an.

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

Beispiel 33: Installieren eines Geräts

Der folgende Befehl verwendet den DevCon-Installationsvorgang , um ein Tastaturgerät auf dem lokalen Computer zu installieren. Der Befehl enthält den vollständigen Pfad zur INF-Datei für das Gerät (keyboard.inf) und eine Hardware-ID (*PNP030b).

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

Als Reaktion meldet DevCon, dass es das Gerät installiert hat, d. h., es hat einen Geräteknoten für das neue Gerät erstellt und die Treiberdateien für das Gerät aktualisiert.

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

Beispiel 34: Installieren eines Geräts mithilfe des unbeaufsichtigten Setups

Das folgende Beispiel zeigt, wie Sie den Microsoft Loopback-Adapter während einer unbeaufsichtigten Installation von Microsoft Windows XP installieren.

Um dieses Gerät während eines unbeaufsichtigten Setups zu installieren, fügen Sie zunächst die folgenden Dateien zu einem Diskettendatenträger hinzu: devcon.exe und netloop.inf (C:\Windows\inf\netloop.inf).

Fügen Sie dann zum Abschnitt [GUIRunOnce] der unbeaufsichtigten Setupdatei den folgenden DevCon-Befehl hinzu:

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

Dieser Befehl identifiziert den Loopbackadapter mithilfe der Hardware-ID *MSLOOP. Das einzelne Anführungszeichen vor "*MSLOOP" weist DevCon an, die Zeichenfolge buchstäblich zu interpretieren, d. h., das Sternchen als Teil der Hardware-ID zu interpretieren, nicht als wildes Karte Zeichen.

Der Befehl gibt außerdem an, dass DevCon die Datei "Netloop.inf" (auf dem Diskettendatenträger) in der Installation verwendet. Der Parameter "/r " startet den Computer nur neu, wenn ein Neustart erforderlich ist, um die Installation abzuschließen.

Fügen Sie schließlich der unbeaufsichtigten Setupdatei Netzwerkkonfigurationseinstellungen hinzu, und führen Sie das unbeaufsichtigte Setup aus.

Beispiel 35: Entfernen von Geräten nach Geräteinstanz-ID-Muster

Der folgende Befehl verwendet den DevCon Remove-Vorgang , um alle USB-Geräte vom Computer zu entfernen. Sie identifiziert die Geräte anhand eines Geräteinstanz-ID-Musters, das jeder Geräteinstanz-ID (Registrierungspfad) entspricht, die mit der Zeichenfolge "USB\" beginnt. Das At-Zeichen (@) unterscheidet die Geräteinstanz-ID von einer Hardware-ID oder einer kompatiblen ID. Der Befehl enthält auch den Parameter "/r ", der das System neu startet, wenn die Entfernungsprozedur wirksam wird.

Warnung

Bevor Sie Geräte mithilfe eines Musters entfernen, bestimmen Sie, welche Geräte betroffen sind. Verwenden Sie dazu das Muster in einem Anzeigebefehl, z devcon status @usb\* . B. oder devcon hwids @usb\*.

devcon /r remove @usb\*

Als Reaktion zeigt DevCon die Geräteinstanz-ID der Geräte an, die sie entfernt hat.

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.

Beispiel 36: Entfernen eines bestimmten Netzwerkgeräts

Der folgende Befehl verwendet den DevCon Remove-Vorgang , um den NDISWAN-Miniporttreiber vom lokalen Computer zu deinstallieren. Der Befehl gibt die Net-Klasse an und optimiert dann die Suche, indem Geräte in der Klasse angegeben werden, deren Hardware-ID oder kompatible ID "ndiswan" enthält. Der Befehl enthält auch den Parameter "/r ", der das System neu startet, wenn ein Neustart erforderlich ist, damit die Remove-Prozedur wirksam wird.

Warnung Vor dem Entfernen von Geräten mithilfe eines Musters bestimmen Sie, welche Geräte betroffen sind. Verwenden Sie dazu das Muster in einem Anzeigebefehl, z devcon status =net *ndiswan . B. oder devcon hwids =net *ndiswan*.

devcon /r remove =net *ndiswan*

Als Reaktion zeigt DevCon die Geräteinstanz-ID des Geräts an, das entfernt wurde.

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

Beispiel 37: Scannen des Computers auf neue Geräte

Der folgende Befehl verwendet den DevCon Rescan-Vorgang , um den lokalen Computer auf neue Geräte zu scannen.

devcon rescan

Als Reaktion meldet DevCon, dass es das System gescannt, aber keine neuen Geräte gefunden hat.

Scanning for new hardware.
Scanning completed.

Beispiel 38: Neustarten eines Geräts

Der folgende Befehl verwendet den DevCon-Neustartvorgang , um den Loopbackadapter auf dem lokalen Computer neu zu starten. Der Befehl beschränkt die Suche auf die Net-Setupklasse und gibt innerhalb dieser Klasse die Geräteinstanz-ID des Loopbackadapters @'ROOT\*MSLOOP\0000 an. Das At-Zeichen (@) identifiziert die Zeichenfolge als Geräteinstanz-ID. Das einfache Anführungszeichen ('), das eine Literalsuche anfordert, verhindert, dass DevCon das Sternchen in der ID als Wildzeichen interpretiert Karte Zeichen.

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

Als Reaktion zeigt DevCon die Geräteinstanz-ID des Geräts an und meldet das Ergebnis.

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

Beispiel 39: Neustarten des lokalen Computers

Der folgende Befehl verwendet den DevCon-Neustartvorgang , um das Betriebssystem auf dem lokalen Computer neu zu starten und den Neustart einer Hardwareinstallation zuzuordnen. Im Gegensatz zum Parameter "/r" hängt der DevCon-Neustartvorgang nicht vom Rückgabecode eines anderen Vorgangs ab.

Sie können diesen Befehl in Skripts und Batchdateien einschließen, für die ein Neustart des Systems erforderlich ist.

devcon reboot

Als Antwort zeigt DevCon eine Meldung an, die angibt, dass der Computer neu gestartet wird (lokaler Computer wird neu gestartet).

DevCon verwendet die standardmäßige ExitWindowsEx-Funktion , um einen Neustart durchzuführen. Wenn der Benutzer Dateien auf dem Computer geöffnet hat oder ein Programm nicht geschlossen wird, wird das System erst neu gestartet, wenn der Benutzer auf Systemaufforderungen geantwortet hat, um die Dateien zu schließen oder den Vorgang zu beenden.

Beispiel 40: Zuweisen einer Hardware-ID zu einem älteren Gerät

Mit dem folgenden Befehl wird der DevCon SetHwID-Vorgang verwendet, um dem Legacy-Signaltongerät die Hardware-ID (Signalton) zuzuweisen.

Der Befehl verwendet die Geräteinstanz-ID des Geräts, ROOT\LEGACY_BEEP\0000, da das Signalton-Legacygerät keine Hardware-IDs oder kompatible IDs enthält. Sie verwendet das At-Zeichen (@), um anzugeben, dass es sich bei der Zeichenfolge um eine Geräteinstanz-ID handelt.

Der Befehl verwendet keine Symbolparameter, um die ID zu positionieren. Standardmäßig fügt DevCon am Ende einer Hardware-ID-Liste neue Hardware-IDs hinzu. In diesem Fall ist die Platzierung irrelevant, da das Gerät keine anderen Hardware-IDs enthält.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

Als Antwort zeigt DevCon eine Meldung an, die angibt, dass der Hardware-ID-Liste für das Gerät ein Signalton hinzugefügt wird. Außerdem wird die resultierende Hardware-ID-Liste angezeigt. In diesem Fall gibt es nur eine Hardware-ID in der Liste.

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

Beispiel 41: Hinzufügen einer Hardware-ID zu allen älteren Geräten

Der folgende Befehl verwendet den DevCon SetHwID-Vorgang , um die Hardware-ID (Legacy) zur Liste der Hardware-IDs für alle Legacygeräte hinzuzufügen.

Der Befehl verwendet den - Symbolparameter, um die neue Hardware-ID am Ende der Hardware-ID-Liste für das Gerät hinzuzufügen, falls für eines der Geräte eine bevorzugte Hardware-ID erstellt wurde. Außerdem wird ein Geräteinstanz-ID-Muster verwendet, @ROOT\LEGACY\*um die älteren Geräte auf dem Computer zu identifizieren, d. h. alle Geräte, deren Geräteinstanz-ID beginnt ROOT\LEGACY*.

devcon sethwid @ROOT\LEGACY* := -legacy

Als Reaktion zeigt DevCon die resultierenden Hardware-ID-Listen für alle betroffenen Geräte an.

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

Nachdem Sie einer Gruppe von Geräten dieselbe Hardware-ID zugewiesen haben, können Sie die anderen DevCon-Vorgänge verwenden, um die Geräte in einem einzigen Befehl anzuzeigen und zu ändern.

Mit dem folgenden Befehl wird beispielsweise der Status aller älteren Geräte angezeigt.

devcon status legacy

Beispiel 42: Löschen einer Hardware-ID von allen älteren Geräten

Der folgende Befehl verwendet den DevCon SetHwID-Vorgang, um die Hardware-ID( Legacy) aus der Liste der Hardware-IDs für alle Legacygeräte zu löschen.

Der Befehl verwendet die Hardware-ID ( Legacy), um alle Geräte mit dieser Hardware-ID zu identifizieren. Anschließend wird der ! -Symbolparameter verwendet, um die alte Hardware-ID zu löschen.

devcon sethwid legacy := !legacy

Als Reaktion zeigt DevCon die resultierenden Hardware-ID-Listen für alle betroffenen Geräte an.

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

Beispiel 43: Hinzufügen, Löschen und Ersetzen von Hardware-IDs

Die folgende Reihe von Beispielen zeigt, wie Sie die vielfältigen Features des DevCon SetHwID-Vorgangs verwenden.

Diese Reihe verwendet ein fiktives Gerät, DeviceX, mit der Geräteinstanz-ID ROOT\DeviceX\0000. Vor der Verwendung von DevCon hatte das Gerät die folgende Liste der Hardware-IDs:

Hw3 Hw4

Der folgende Befehl verwendet das + Symbol, um Hw1 und Hw2 am Anfang einer Liste der Hardware-IDs für DeviceX hinzuzufügen. Da Hw2 bereits in der Liste angezeigt wird, wird sie verschoben, nicht hinzugefügt. Der Befehl identifiziert das Gerät anhand seiner Geräteinstanz-ID, wie durch das "at"-Zeichen (@) vor der ID angegeben.

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

Als Reaktion zeigt DevCon die neue Hardware-ID-Liste für das Gerät an. Beachten Sie, dass Hw1 und Hw2 am Anfang der Liste in der angegebenen Reihenfolge angezeigt werden.

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

Darüber hinaus meldet DevCon, dass es eine Hardware-ID-Liste geändert hat, d. h. die Hardware-ID-Liste eines Geräts.

Der folgende Befehl verwendet das Symbol ! , um die Hw1-Hardware-ID zu löschen. Anschließend werden die Hardware-ID Hw5 ohne Symbolparameter aufgelistet. Ohne Symbolparameter fügt SetHwID die Hardware-ID am Ende der Hardware-ID-Liste für das Gerät hinzu.

Dieser Befehl veranschaulicht, dass im Gegensatz zu den anderen Symbolparametern für den DevCon SetHwID-Vorgang das !-Symbol nur auf die Hardware-ID angewendet wird, die sie präfixiert.

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

Als Reaktion zeigt DevCon die resultierende Hardware-ID-Liste für DeviceX an.

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

Der folgende Befehl verwendet den Parameter =, um alle Hardware-IDs in der Liste für DeviceX durch eine einzelne Hardware-ID, DevX, zu ersetzen.

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

Als Reaktion zeigt DevCon die resultierende Hardware-ID-Liste für DeviceX an.

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

Die Erfolgsmeldung gibt an, dass DevCon die Hardware-ID eines Geräts geändert hat.

Beispiel 44: Forcibly update the HAL

Das folgende Beispiel zeigt, wie Sie devCon verwenden, um die HAL auf dem Computer zu aktualisieren. In diesem Beispiel möchte ein Tester die Uniprocessor-APIC-HAL ersetzen, die am besten für den Computer geeignet ist, mit einem Multiprozessor-APCI-APIC-HAL zu Testzwecken.

Der erste Befehl verwendet den DevCon SetHwID-Vorgang, um die Hardware-ID der HAL von acpiapic_up, der Hardware-ID für Uniprozessor-HALs in acpiapic_mp, die Hardware-ID für Multiprozessor-HALs zu ändern.

Sie müssen die Hardware-ID ändern, da die INF-Datei für die HAL Treiber sowohl für Uniprozessor- als auch für Multiprozessor-HALs enthält. Das System wählt den am besten geeigneten Treiber aus der INF-Datei basierend auf der Hardware-ID des Geräts aus. Wenn Sie die Hardware-ID nicht ändern, würde der DevCon Update-Befehl einfach den Uniprocessor HAL-Treiber neu installieren.

Im folgenden Befehl identifiziert der Befehl die HAL anhand der Instanz-ID ROOT\ACPI_HAL\0000, wie durch das @ Zeichen vor der ID angegeben. Der Befehl verwendet das + Zeichen, um acpiapic_mp die erste Hardware-ID in der Liste für die HAL zu erstellen. Anschließend wird das Zeichen ! verwendet, um die acpiapic_up Hardware-ID aus der Liste der IDs für die HAL zu löschen.

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

Als Antwort zeigt DevCon die folgende neue Hardware-ID-Liste für die HAL an.

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

Der folgende Befehl verwendet den DevCon Update-Vorgang , um den Treiber für die HAL zu aktualisieren.

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

Anschließend zeigt DevCon die folgende Erfolgsmeldung an.

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

Beispiel 45: Hinzufügen und Entfernen von Treiberpaketen

Die folgenden Beispiele zeigen, wie Sie DevCon verwenden, um Treiberpakete von Drittanbietern (OEM) im Treiberspeicher hinzuzufügen, zu löschen und anzuzeigen.

Der erste Befehl, ein DevCon-Dp_add-Befehl , kopiert die INF-Datei für den Toaster-Beispieltreiber im WDK in den Treiberspeicher, d. h. in das Verzeichnis %Windir%\inf. Der Befehl enthält den vollqualifizierten Pfad zur INF-Datei für den Toaster-Beispieltreiber.

Dieser Befehl ist für OEM-Treiber und -Geräte von Drittanbietern vorgesehen, Sie können jedoch das Toaster-Beispiel verwenden, um die Befehle zu testen.

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

Als Reaktion darauf meldet DevCon, dass die Toaster INF-Datei dem Treiberspeicher hinzugefügt und oem2.inf genannt wurde.

Driver Package 'oem2.inf' added.

Vor dem Kopieren in den Treiberspeicher vergleicht Windows die Binärversion der INF-Datei mit den Binärversionen der INF-Dateien im Treiberspeicher, um sicherzustellen, dass keine duplizierte Datei hinzugefügt wird. Wenn Sie beispielsweise den Befehl zum Hinzufügen von Toaster.inf zum Treiberspeicher wiederholen, erstellt DevCon keine neue OEM*.inf-Datei. Sie meldet lediglich den Namen der vorhandenen Datei, wie in der folgenden DevCon-Ausgabe dargestellt.

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.

Um das Treiberpaket für den Toastertreiber aus dem Treiberspeicher zu entfernen, müssen Sie den OEM*.inf-Dateinamen für den Treiber verwenden. Verwenden Sie den Befehl "DevCon Dp_enum ", um den Dateinamen für den Treiber zu finden.

Der folgende Befehl listet alle OEM-Treiberpakete und einige der zugehörigen Eigenschaften auf.

devcon dp_enum

Als Reaktion generiert DevCon die folgende Anzeige:

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

Diese Informationen geben an, dass das von Microsoft mit der nicht spezifizierten Geräteklasse (Toaster) bereitgestellte Treiberpaket oem2.inf heißt. Sie können diese Informationen verwenden, um das der Datei zugeordnete Treiberpaket zu löschen.

Mit dem folgenden Befehl wird die OEM2.inf-Datei aus dem Treiberspeicher sowie die zugehörigen vorkompilierten INF-Dateien (.pnf) und Katalogdateien (CAT) gelöscht. Der Befehl verwendet den DATEINAMEN OEM*.inf.

devcon dp_delete oem2.inf

Als Antwort zeigt DevCon eine Meldung an, die angibt, dass der Befehl erfolgreich war:

Driver Package 'oem2.inf' deleted.

Der OEM*.inf-Dateiname ist im DevCon-Dp_delete-Befehl erforderlich. Wenn Sie versuchen, den ursprünglichen Namen der INF-Datei zu verwenden, schlägt der Befehl fehl, wie in der folgenden DevCon-Ausgabe gezeigt.

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