디바이스 콘솔(DevCon.exe) 예제

Important

PnPUtil 은 Windows의 모든 릴리스와 함께 제공되며 가장 안정적이고 안전한 API를 사용할 수 있으며 사용하는 것이 좋습니다. devcon 대신 PnPutil을 사용하는 방법에 대한 자세한 내용은 DevCon 바꾸기를 참조 하세요.

예제 카타고리

이 섹션에서는 다음 디바이스 콘솔(DevCon.exe) 명령의 예를 제공합니다.

DevCon HwID

DevCon 클래스

DevCon ListClass

DevCon DriverFiles

DevCon DriverNodes

DevCon 리소스

DevCon Stack

DevCon 상태

DevCon Find

DevCon FindAll

DevCon ClassFilter

DevCon 사용

DevCon 사용 안 함

DevCon 업데이트 및 UpdateNI

DevCon 설치

DevCon 제거

DevCon 다시 검사

DevCon 다시 시작

DevCon 다시 부팅

DevCon SetHwID

DevCon dp_add, dp_deleted, dp_enum

예 세부 정보

예제 1: 모든 하드웨어 ID 찾기

DevCon 작업은 ID 및 ID 패턴을 사용하여 디바이스를 식별하기 때문에 DevCon을 사용하는 일반적인 첫 번째 단계는 컴퓨터의 디바이스에 대한 하드웨어 ID 참조 파일을 만드는 것입니다.

다음 명령은 ID 및 디바이스 설명을 반환하는 DevCon HwIDs 작업을 사용합니다. 와일드카드 문자(*)를 사용하여 로컬 컴퓨터의 모든 디바이스를 나타냅니다.

devcon hwids *

출력이 길고 반복적으로 사용되므로 참조를 위해 텍스트 파일에 출력을 저장합니다.

다음 명령은 wild카드 문자(*)를 사용하여 컴퓨터의 모든 디바이스를 나타냅니다. 리디렉션 문자(>)를 사용하여 명령 출력을 hwids.txt 파일에 저장합니다.

devcon hwids * > hwids.txt

예제 2: 패턴을 사용하여 하드웨어 ID 찾기

특정 디바이스의 하드웨어 ID를 찾으려면 하드웨어 ID 또는 패턴, 호환 ID 또는 패턴, 디바이스 인스턴스 ID 또는 패턴 또는 디바이스 설정 클래스의 이름을 입력합니다.

다음 명령은 DevCon HwIDs 작업 및 패턴을 사용하여 컴퓨터에서 플로피 디스크 드라이브의 하드웨어 ID를 찾습니다. (사용자는 패턴이 디바이스 식별자 중 하나에 표시된다고 가정합니다.) 이 명령은 와일드카드 문자(*)를 사용하여 ID에서 "플로피"라는 단어 앞에 오거나 따를 수 있는 모든 문자를 나타냅니다.

devcon hwids *floppy*

이에 대한 응답으로 DevCon은 컴퓨터에 플로피 디스크 드라이브의 디바이스 인스턴스 ID, 하드웨어 ID 및 호환 ID를 표시합니다. 후속 DevCon 명령에서 이러한 ID를 사용할 수 있습니다.

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.

이 경우 "플로피"라는 문구는 컴퓨터에 있는 하나의 디바이스의 하드웨어 ID 또는 호환 ID에서 발생합니다. 둘 이상의 디바이스 ID에서 발생하는 경우 ID에 "플로피"가 있는 모든 디바이스가 출력에 표시됩니다.

예제 3: 클래스를 사용하여 하드웨어 ID 찾기

다음 명령은 DevCon HwIDs 작업 및 디바이스 설정 클래스를 사용하여 포트 디바이스 설정 클래스에 있는 모든 디바이스의 하드웨어 ID를 찾습니다. 클래스 이름 앞에 있는 등호(=)는 ID가 아닌 클래스임을 나타냅니다.

devcon hwids =ports

이에 대한 응답으로 DevCon은 포트 설정 클래스에 있는 세 디바이스의 하드웨어 ID 및 호환 ID를 표시합니다.

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.

예제 4: 로컬 컴퓨터의 클래스 나열

DevCon 작업은 디바이스 설정 클래스를 사용하여 디바이스를 식별할 수 있으므로 컴퓨터에서 디바이스의 디바이스 설정 클래스에 대한 참조 파일을 만드는 것이 유용합니다.

다음 명령은 컴퓨터의 모든 클래스에 대한 목록과 설명을 반환하는 DevCon 클래스 작업을 사용합니다.

devcon classes

출력이 길고 반복적으로 사용되므로 참조를 위해 텍스트 파일에 출력을 저장합니다.

다음 명령은 컴퓨터의 모든 디바이스 클래스를 표시합니다. 리디렉션 문자(>)를 사용하여 명령 출력을 classes.txt 파일에 저장합니다.

devcon classes > classes.txt

예제 6: 디바이스 설정 클래스의 디바이스 나열

다음 명령은 DevCon ListClass 작업을 사용하여 네트워크 어댑터에 대한 디바이스 설정 클래스인 Net의 디바이스를 나열합니다.

devcon listclass net

이에 대한 응답으로 DevCon은 Net 설치 클래스의 각 디바이스에 대한 디바이스 인스턴스 ID 및 설명을 표시합니다.

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

이 디스플레이는 흥미롭지만 Net 설치 클래스에서 디바이스의 하드웨어 ID를 제공하지는 않습니다. 다음 명령은 DevCon HwIDs 작업을 사용하여 Net 설치 클래스의 디바이스를 나열합니다. DevCon HwIDs 명령에서 클래스 이름 앞에는 ID가 아닌 클래스임을 나타내는 등호(=)가 있습니다.

devcon hwids =net

결과 디스플레이는 Net 클래스의 디바이스를 나열하고 클래스의 디바이스 인스턴스 ID, 하드웨어 ID 및 호환되는 디바이스 ID를 포함합니다.

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.

예제 7: 여러 클래스의 디바이스 나열

다음 명령은 DevCon ListClass 작업을 사용하여 DiskDrive, CDROM 및 TapeDrive 클래스의 디바이스를 나열합니다.

devcon listclass diskdrive cdrom tapedrive

이에 대한 응답으로 DevCon은 해당 클래스에 디바이스를 표시합니다.

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

예제 8: 모든 드라이버 파일 나열

다음 명령은 DevCon DriverFiles 작업을 사용하여 시스템의 디바이스에서 사용하는 드라이버의 파일 이름을 나열합니다. 이 명령은 wild카드 문자(*)를 사용하여 시스템의 모든 디바이스를 나타냅니다. 출력이 광범위하기 때문에 명령은 리디렉션 문자(>)를 사용하여 출력을 참조 파일로 리디렉션하는 driverfiles.txt.

devcon driverfiles * > driverfiles.txt

예제 9: 특정 디바이스의 드라이버 파일 나열

다음 명령은 DevCon DriverFiles 작업을 사용하여 로컬 컴퓨터의 마우스 디바이스에서 사용하는 디바이스 드라이버를 검색합니다. 디바이스를 하드웨어 ID인 HID\Vid_045e&Pid_0039&Rev_0121 중 하나로 식별합니다. 하드웨어 ID는 앰퍼샌드 문자(&&)를 포함하므로 따옴표로 묶습니다.

devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"

이에 대한 응답으로 DevCon은 마우스 디바이스를 지원하는 두 개의 디바이스 드라이버를 표시합니다.

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.

예제 10: 하드웨어 ID 패턴별 드라이버 패키지 나열

다음 명령은 DevCon DriverNodes 명령 및 ID 패턴을 사용하여 소프트웨어 열거형 디바이스의 드라이버 노드를 나열합니다. 패턴은 동일한 설정 클래스에 없을 수 있는 유사한 디바이스에 대한 정보를 찾는 데 유용합니다.

다음 명령은 ID 패턴 sw\*를 사용하여 하드웨어 ID 또는 호환 ID가 소프트웨어 열거형 디바이스인 "sw"로 시작하는 디바이스를 지정합니다.

devcon drivernodes sw*

이에 대한 응답으로 DevCon은 소프트웨어 열거형 디바이스의 드라이버 노드를 시스템에 표시합니다.

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.

예제 11: 디바이스 인스턴스 ID 패턴별 드라이버 패키지 나열

다음 명령은 DevCon DriverNodes 작업을 사용하여 디바이스 인스턴스 ID가 ROOT\MEDIA, 즉 Enum\Root\Media 레지스트리 하위 키의 디바이스로 시작하는 모든 디바이스의 드라이버 패키지를 나열합니다. 이 명령은 at 문자(@)를 사용하여 구가 디바이스 인스턴스 ID에 있음을 나타냅니다.

devcon drivernodes @ROOT\MEDIA*

이에 대한 응답으로 DevCon은 디바이스 인스턴스 ID가 "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.

예제 12: 디바이스 클래스의 리소스 나열

다음 명령은 DevCon 리소스 작업을 사용하여 Hdc 디바이스 설정 클래스에서 디바이스에 할당된 리소스를 표시합니다. 이 클래스에는 IDE 컨트롤러가 포함됩니다. 등호(=)는 ID가 아닌 클래스임을 나타내기 위해 "hdc" 앞에 추가됩니다.

devcon resources =hdc

이에 대한 응답으로 DevCon은 로컬 컴퓨터의 IDE 컨트롤러에 할당된 리소스를 나열합니다.

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.

예제 13: ID별 디바이스 리소스 나열

다음 명령은 DevCon 리소스 작업을 사용하여 시스템 타이머에 할당된 리소스를 나열합니다. 이 명령은 시스템 타이머의 하드웨어 ID인 ACPI\PNP0100 사용하여 디바이스를 지정합니다.

devcon resources *PNP0100

이에 대한 응답으로 DevCon은 시스템 타이머의 리소스를 표시합니다.

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

다음 명령은 DevCon 리소스 명령에서 시스템 타이머의 디바이스 인스턴스 ID를 사용합니다. at 문자(@)는 문자열이 하드웨어 ID 또는 호환 ID가 아닌 디바이스 인스턴스 ID임을 나타냅니다.

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

예제 14: 스토리지 디바이스에 대한 드라이버 스택 표시

다음 명령은 DevCon Stack 작업을 사용하여 볼륨 설정 클래스에서 디바이스를 검색하고 해당 디바이스에 대해 예상되는 드라이버 스택을 표시합니다. 등호(=)는 문자열이 클래스 이름임을 나타냅니다.

devcon stack =Volume

이에 대한 응답으로 DevCon은 Volume 클래스의 디바이스에 대한 예상 스택을 표시합니다. 반환된 데이터에는 각 디바이스에 대한 디바이스 인스턴스 ID 및 설명, 디바이스 설정 클래스의 GUID 및 이름, 상위 및 하위 필터 드라이버의 이름 및 제어 서비스(있는 경우)가 포함됩니다.

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.

예제 15: 디바이스의 설정 클래스 찾기

DevCon Stack 작업은 상위 및 하위 필터 드라이버 외에도 디바이스의 설정 클래스를 반환합니다. 다음 명령은 해당 디바이스 인스턴스 ID를 찾은 다음 디바이스 인스턴스 ID를 사용하여 설치 클래스를 찾아 프린터 포트 인터페이스의 설치 클래스를 찾습니다.

다음 명령은 DevCon HwIDs 작업을 사용하여 프린터 포트 하드웨어 ID의 구인 "LPT"를 사용하여 프린터 포트 인터페이스의 디바이스 인스턴스 ID를 찾습니다.

devcon hwids *lpt*

이에 대한 응답으로 DevCon은 디바이스 인스턴스 ID(굵은 텍스트로 표시됨)와 프린터 포트 인터페이스의 하드웨어 ID를 반환합니다.

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

다음 명령은 DevCon Stack 작업을 사용하여 디바이스 인스턴스 ID로 표시되는 디바이스의 디바이스 설정 클래스를 찾습니다. at 문자(@)는 ID를 디바이스 인스턴스 ID로 식별합니다. ID는 앰퍼샌드 문자를 포함하므로 따옴표로 묶습니다.

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

이에 대한 응답으로 DevCon은 클래스를 포함하여 프린터 포트 인터페이스에 대한 드라이버 스택을 표시합니다. 디스플레이는 프린터 포트가 시스템 클래스에 있음을 표시합니다.

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.

다음 명령은 DevCon Stack 작업을 사용하여 미니포트 드라이버 디바이스에 필요한 스택을 표시합니다. 하드웨어 ID 또는 호환 ID에 "미니포트"가 있는 Net 설치 클래스의 디바이스를 검색합니다.

이 명령은 먼저 검색을 Net 설치 클래스로 제한한 다음 "miniport" 문자열을 찾습니다. Net 설치 클래스 이외의 디바이스는 찾을 수 없습니다.

devcon stack =net *miniport*

이에 대한 응답으로 DevCon은 미니포트 드라이버에 대해 예상되는 스택을 표시합니다.

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.

예제 17: 모든 디바이스의 상태 표시

다음 명령은 DevCon 상태 작업을 사용하여 로컬 컴퓨터에서 모든 디바이스의 상태 찾습니다. 그런 다음 로깅 또는 이후 검토를 위해 상태 상태.txt 파일에 저장합니다. 이 명령은 와일드카드 문자(*)를 사용하여 모든 디바이스를 나타내고 리디렉션 문자(>)를 사용하여 출력을 상태.txt 파일로 리디렉션합니다.

devcon status * > status.txt

예제 18: 디바이스 인스턴스 ID별로 디바이스의 상태 표시

특정 디바이스의 상태 찾는 가장 신뢰할 수 있는 방법은 디바이스의 디바이스 인스턴스 ID를 사용하는 것입니다.

다음 명령은 DevCon Status 명령의 로컬 컴퓨터에서 I/O 컨트롤러의 디바이스 인스턴스 ID를 사용합니다. 이 명령에는 디바이스의 디바이스 인스턴스 ID인 PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&REV_02 E81982&0&00이 포함됩니다. ID에 접두사로 지정된 at 문자(@)는 문자열을 디바이스 인스턴스 ID로 식별합니다. ID는 앰퍼샌드 문자를 포함하므로 따옴표로 묶어야 합니다.

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

이에 대한 응답으로 DevCon은 I/O 컨트롤러의 상태 표시합니다.

PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00
    Name: Intel(R) 82815 Processor to I/O Controller - 1130
    Driver is running.
1 matching device(s) found.

다음 명령은 DevCon 상태 작업을 사용하여 특정 스토리지 관련 디바이스의 상태 표시합니다. 다음 디바이스를 검색합니다.

  • 디스크 드라이브, GenDisk

  • CD-ROM 드라이브, GenCdRom

  • 플로피 디스크 드라이브, FDC\GENERIC_FLOPPY_DRIVE

  • 볼륨, STORAGE\볼륨

  • 논리 디스크 관리자, ROOT\DMIO

  • 볼륨 관리자, ROOT\FTDISK

  • 플로피 디스크 컨트롤러, ACPI\PNP0700

명령에서 각 ID는 공백으로 다른 ID와 구분됩니다. GenDisk 및 GenCdRom은 호환되는 ID인 반면 다른 ID는 하드웨어 ID입니다.

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

이에 대한 응답으로 DevCon은 각 디바이스의 상태 표시합니다.

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.

예제 20: 하드웨어 ID 패턴별 디바이스 찾기

다음 명령은 DevCon 찾기 작업을 사용하여 마우스 디바이스를 검색합니다. 특히 이 명령은 하드웨어 ID 또는 호환 ID에 "mou"가 포함된 디바이스를 컴퓨터에서 검색하며 "무스" 드라이버를 찾을 수 없습니다.

devcon find *mou*

이 경우 DevCon은 두 개의 마우스 디바이스를 모두 발견했습니다.

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

모든 DevCon 디스플레이 작업에서도 하드웨어 ID를 찾을 수 있으므로 모든 디스플레이 작업을 사용하여 하드웨어 ID를 검색할 수 있습니다. 출력에 필요한 콘텐츠에 따라 작업을 선택합니다. 예를 들어 로컬 컴퓨터에서 마우스 관련 디바이스에서 사용하는 디바이스 드라이버를 찾으려면 다음 명령을 제출합니다.

devcon driverfiles *mou*

이에 대한 응답으로 DevCon은 디바이스를 찾고 해당 드라이버를 나열합니다.

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.

예제 21: 디바이스 인스턴스 ID 또는 클래스별로 디바이스 찾기

다음 명령은 DevCon Find 작업을 사용하여 로컬 컴퓨터에 모든 레거시 디바이스를 표시합니다. 레거시 디바이스에는 하드웨어 ID가 없으므로 디바이스 인스턴스 ID(레지스트리 경로), ROOT\LEGACY 또는 설치 클래스인 LegacyDriver로 검색해야 합니다.

첫 번째 명령은 디바이스 인스턴스 ID 패턴으로 레거시 드라이버를 찾습니다. ID 패턴은 디바이스 인스턴스 ID를 나타내기 위해 at 문자(@)가 앞에 표시되고, 그 뒤에는 ROOT\Legacy 하위 키의 모든 디바이스를 찾기 위한 와일드카드 문자(*)가 잇습니다.

devcon find @root\legacy*

두 번째 명령은 LegacyDriver 클래스의 모든 디바이스를 검색하여 레거시 디바이스를 찾습니다.

devcon find =legacydriver

두 명령 모두 동일한 출력을 생성합니다. 이 경우 동일한 27개의 레거시 디바이스를 찾습니다.

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.

예제 22: 설정 클래스에서 디바이스 찾기(및 모두 찾기)

다음 명령은 DevCon FindAll 작업을 사용하여 Net 설치 클래스의 컴퓨터에서 모든 디바이스를 찾습니다. 등호(=)는 Net이 ID가 아닌 설정 클래스임을 나타냅니다.

devcon findall =net

이에 대한 응답으로 DevCon은 Net 설치 클래스에 다음 7개의 디바이스를 나열합니다. 처음 6개는 표준 미니포트 드라이버 디바이스입니다. 일곱 번째 디바이스인 RAS 비동기 어댑터는 필요할 때까지 설치되지 않은 소프트웨어 열거형 디바이스(SW\*)입니다.

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.

다음 명령은 이전 DevCon FindAll 명령과 동일한 매개 변수를 사용하여 DevCon Find 명령을 실행하여 DevCon FindDevCon FindAll 작업을 비교합니다.

devcon find =net

이에 대한 응답으로 DevCon은 Net 설치 클래스에 다음 6개의 디바이스를 나열합니다.

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.

예상대로 현재 설치된 디바이스만 반환하는 DevCon Find 명령은 디바이스가 설치되지 않았기 때문에 소프트웨어 열거형 디바이스를 나열하지 않습니다.

예제 23: 설정 클래스에 대한 필터 드라이버 표시

다음 명령은 DevCon ClassFilter 작업을 사용하여 DiskDrive 설치 클래스의 상위 필터 드라이버를 표시합니다. 이 명령에는 클래스 필터 연산자가 포함되지 않으므로 DevCon은 클래스에 대한 필터 드라이버를 표시하지만 변경하지는 않습니다.

devcon classfilter DiskDrive upper

이에 대한 응답으로 DevCon은 DiskDrive 클래스에 대한 상위 필터 드라이버를 표시하고 해당 드라이버가 변경되지 않았음을 확인합니다. 이 경우 디스플레이는 DiskDrive 설치 클래스의 디바이스가 PartMgr.sys 상위 필터 드라이버를 사용한다는 것을 보여줍니다.

Class filters unchanged.
    PartMgr

예제 24: 설정 클래스에 필터 드라이버 추가

다음 명령은 DevCon ClassFilter 작업을 사용하여 Disklog.sys 가상 필터를 DiskDrive 설치 클래스의 상위 필터 드라이버 목록에 추가합니다.

이 명령은 추가 후(+) ClassFilter 연산자를 사용하여 PartMgr 드라이버 뒤의 Disklog 드라이버를 로드하여 PartMgr.sys 이미 처리한 데이터를 받도록 합니다.

명령이 시작되면 가상 커서가 첫 번째 필터 드라이버 앞에 배치됩니다. 특정 드라이버에 배치되지 않으므로 DevCon은 Disklog 드라이버를 필터 드라이버 목록의 끝에 추가합니다.

이 명령은 /r 매개 변수도 사용합니다. 이 매개 변수는 클래스 필터 변경을 적용하는 데 필요한 경우 시스템을 다시 부팅합니다.

devcon /r classfilter DiskDrive upper +Disklog

이에 대한 응답으로 DevCon은 DiskDrive 클래스에 대한 현재 상위 필터 드라이버를 표시합니다.

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

드라이버 이름을 잘못 입력하거나 시스템에 설치되지 않은 드라이버를 추가하려고 하면 명령이 실패합니다. DevCon은 드라이버가 서비스로 등록되지 않는 한 드라이버를 추가하지 않습니다. 즉, 드라이버에 Services 레지스트리 하위 키(HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services)에 하위 키가 없는 경우입니다.

다음 명령은 이 보호 기능을 테스트합니다. DiskDrive 클래스의 상위 필터 목록에 "Disklgg"("Disklog" 대신)를 추가하려고 합니다. 출력은 명령이 실패했음을 보여 줍니다.

devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.

예제 25: 클래스 목록에 필터 드라이버 삽입

다음 명령은 DevCon ClassFilter 작업을 사용하여 가상의 필터 드라이버인 MyFilter.sys DiskDrive 설치 클래스의 상위 필터 드라이버 목록에 추가합니다. 이 명령은 부하 순서에서 PartMgr.sys Disklog.sys 사이에 MyFilter.sys 배치합니다.

devcon /r classfilter DiskDrive upper @Disklog -MyFilter

다음 목록에서는 명령이 제출되기 전에 DiskDrive 클래스에 대한 필터 드라이버를 보여 있습니다.

    PartMgr
    Disklog

첫 번째 하위 명령인 @Disklog 위치 지정 연산자(@)를 사용하여 Disklog 필터 드라이버에 가상 커서를 배치합니다. 두 번째 하위 명령 인 -MyFilter는 추가 전 연산자(-)를 사용하여 Disklog.sys 전에 MyFilter.sys 추가합니다.

이 명령은 /r 매개 변수도 사용합니다. 이 매개 변수는 클래스 필터 변경을 적용하는 데 필요한 경우 시스템을 다시 부팅합니다.

이 예제에서는 위치 지정 연산자가 필수적입니다. DevCon이 클래스 필터 하위 명령을 처리하기 전에 가상 커서는 목록의 시작 부분에 있으며 필터 드라이버에 배치되지 않습니다. 커서가 드라이버에 배치되지 않은 경우 add-before(+) 연산자를 사용하면 DevCon에서 드라이버가 목록의 시작 부분에 추가됩니다. 드라이버에 커서가 배치되지 않은 경우 추가 후(-) 연산자를 사용하면 드라이버가 목록 끝에 추가됩니다.

이에 대한 응답으로 DevCon은 DiskDrive 클래스에 대한 현재 상위 필터 드라이버를 표시합니다.

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

다음 명령을 사용하여 MyFilter 드라이버를 추가하고 PartMgr과 Disklog 사이에 배치할 수도 있습니다. 이 예제에서 첫 번째 하위 명령인 @PartMgr PartMgr 필터 드라이버에 가상 커서를 배치합니다. 두 번째 하위 명령인 +MyFilter는 추가 후 연산자(+)를 사용하여 PartMgr 이후의 MyFilter.sys 추가합니다.

devcon /r classfilter DiskDrive upper @PartMgr +MyFilter

예제 26: 필터 드라이버 바꾸기

다음 명령은 DevCon ClassFilter 작업을 사용하여 MyFilter.sys 원본 복사본을 DiskDrive 설치 클래스의 필터 드라이버 목록에서 MyNewFilter.sys 개선된 새 버전으로 바꿉니다.

devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter

다음 목록에서는 명령이 제출되기 전에 DiskDrive 클래스에 대한 필터 드라이버를 보여 있습니다.

    PartMgr
    MyFilter
    Disklog

첫 번째 하위 명령은 delete 연산자(!)를 사용하여 DiskDrive 클래스의 상위 필터 드라이버 목록에서 MyFilter를 삭제합니다. (C:\Windows\System32\Drivers 디렉터리의 MyFilter.sys 파일에는 영향을 주지 않습니다.)

두 번째 하위 명령은 추가 후 연산자(+)를 사용하여 삭제된 드라이버가 차지하는 위치에 새 필터 드라이버를 배치합니다. delete 연산자는 삭제된 필터가 점유한 위치에 커서를 남겨 두므로 추가 전() 및 추가 후(-+) 연산자는 동일한 효과를 갖습니다.

이 명령은 /r 매개 변수도 사용합니다. 이 매개 변수는 클래스 필터 변경을 적용하는 데 필요한 경우 시스템을 다시 부팅합니다.

이에 대한 응답으로 DevCon은 DiskDrive 클래스에 대한 새 클래스 필터 구성을 표시합니다.

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

예제 27: 필터 드라이버 순서 변경

다음 명령은 DevCon ClassFilter 작업을 사용하여 DiskDrive 설치 클래스에 대한 필터 드라이버의 순서를 변경합니다. 특히 두 번째 및 세 번째 필터 드라이버의 순서를 반대로 바뀝니다.

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

다음 목록에서는 명령이 제출되기 전에 DiskDrive 클래스에 대한 필터 드라이버를 보여 있습니다. 명령의 의도된 결과도 표시됩니다.

이전 이후
PartMgr PartMgr
MyNewFilter Disklog
Disklog MyNewFilter

첫 번째 하위 명령은 delete 연산자(!) 를 사용하여 목록에서 Disklog를 삭제합니다. 두 번째 하위 명령은 시작 연산자(=) 를 사용하여 가상 커서를 다시 시작 위치로 이동한 다음 위치 지정 연산자(@) 를 사용하여 PartMgr 드라이버에 커서를 배치합니다. 가상 커서가 목록을 통해서만 앞으로 이동하기 때문에 시작 연산자가 필요합니다. 최종 하위 명령은 추가 후 연산자(+) 를 사용하여 PartMgr 이후 Disklog를 추가합니다.

이에 대한 응답으로 DevCon은 DiskDrive 클래스에 대한 새 클래스 필터 구성을 표시합니다.

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

예제 28: 특정 디바이스 사용

다음 명령은 DevCon 사용 작업을 사용하여 시스템 문제를 해결하기 위해 사용하지 않도록 설정된 프로그래밍 가능한 인터럽트 컨트롤러를 사용하도록 설정합니다. 컨트롤러 하드웨어 ID *PNP0000 별표를 포함하므로 명령은 단일 따옴표 문자(')를 사용하여 DevCon이 명령에 지정된 대로 하드웨어 ID를 정확하게 찾도록 지시합니다. 그렇지 않으면 별표가 야생 문자로 해석됩니다카드.

devcon enable '*PNP0000

이에 대한 응답으로 DevCon은 디바이스의 디바이스 인스턴스 ID를 표시하고 디바이스를 사용하도록 설정하려면 시스템을 다시 부팅해야 한다고 설명합니다.

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

시스템을 수동으로 다시 부팅하거나 DevCon 다시 부팅 작업을 사용하여 응답할 수 있습니다.

다음 명령은 이전 명령에 /r 매개 변수를 추가합니다. /r 매개 변수는 작업을 완료하기 위해 다시 부팅해야 하는 경우에만 시스템을 다시 부팅합니다.

devcon /r enable '*PNP0000

이에 대한 응답으로 DevCon은 디바이스를 사용하도록 설정한 다음 시스템을 다시 부팅하여 사용하도록 설정합니다.

시스템이 시작되면 DevCon 상태 명령을 사용하여 디바이스가 사용하도록 설정되어 있는지 확인합니다.

devcon status '*PNP0000

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

예제 29: 클래스별로 디바이스 사용

다음 명령은 DevCon Enable 명령에서 프린터 설정 클래스를 지정하여 컴퓨터의 모든 프린터 디바이스를 사용하도록 설정합니다. 이 명령에는 /r 매개 변수가 포함되어 있습니다. 이 매개 변수는 사용하도록 설정하는 데 필요한 경우 시스템을 다시 부팅합니다.

devcon /r enable =Printer

이에 대한 응답으로 DevCon은 프린터 클래스에서 찾은 프린터의 디바이스 인스턴스 ID를 표시하고 사용하도록 설정되었음을 보고합니다. 명령에 /r 매개 변수가 포함되어 있지만 프린터를 사용하도록 설정하는 데 다시 부팅할 필요가 없으므로 시스템이 다시 부팅되지 않았습니다.

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

예제 30: ID 패턴으로 디바이스 사용 안 함

다음 명령은 DevCon 사용 안 함 작업을 사용하여 로컬 컴퓨터에서 USB 디바이스를 사용하지 않도록 설정합니다. 하드웨어 ID 패턴(USB*)으로 디바이스를 식별합니다. 이 패턴은 하드웨어 ID 또는 호환 ID가 "USB"로 시작하는 모든 디바이스와 일치합니다. 이 명령에는 /r 매개 변수가 포함되어 있습니다. 이 매개 변수는 비활성화를 효과적으로 설정해야 하는 경우 시스템을 다시 부팅합니다.

참고 ID 패턴을 사용하여 디바이스를 사용하지 않도록 설정하기 전에 영향을 받을 디바이스를 결정합니다. 이렇게 하려면 devcon 상태 USB\* 또는 devcon hwids USB\*와 같은 표시 명령에서 패턴을 사용합니다.

devcon /r disable USB*

이에 대한 응답으로 DevCon은 USB 디바이스의 디바이스 인스턴스 ID를 표시하고 비활성화되었다고 보고합니다. 명령에 /r 매개 변수가 포함되어 있지만 디바이스를 사용하지 않도록 설정하는 데 다시 부팅할 필요가 없으므로 시스템이 다시 부팅되지 않았습니다.

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.

예제 31: 디바이스 인스턴스 ID별로 디바이스 사용 안 함

다음 명령은 DevCon 사용 안 함 작업을 사용하여 로컬 컴퓨터에서 USB 디바이스를 사용하지 않도록 설정합니다. 이 명령은 각 ID 앞에 오는 문자(@)로 표시된 대로 디바이스 인스턴스 ID로 디바이스를 식별합니다. 각 디바이스 인스턴스 ID는 공백으로 다른 디바이스 인스턴스 ID와 구분됩니다.

또한 디바이스 인스턴스 ID는 앰퍼샌드 문자(&&)를 포함하므로 따옴표로 묶습니다. 이 명령에는 /r 매개 변수가 포함되어 있습니다. 이 매개 변수는 비활성화를 효과적으로 설정해야 하는 경우 시스템을 다시 부팅합니다.

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

이에 대한 응답으로 DevCon은 USB 디바이스의 디바이스 인스턴스 ID를 표시하고 비활성화되었다고 보고합니다. 명령에 /r 매개 변수가 포함되어 있지만 디바이스를 사용하지 않도록 설정하는 데 다시 부팅할 필요가 없으므로 시스템이 다시 부팅되지 않았습니다.

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.

예제 32: 통신 포트에 대한 드라이버 업데이트

다음 명령은 DevCon 업데이트 작업을 사용하여 시스템의 통신 포트에 대한 현재 디바이스 드라이버를 test.inf 파일에 지정된 테스트 드라이버로 바꿉다. 이 명령은 전체 하드웨어 ID가 *PNP0501(별표 포함)인 디바이스에만 영향을 줍니다.

이 명령을 사용하여 시스템의 서명된 드라이버를 테스트 또는 문제 해결을 위한 대체 드라이버로 바꾸거나 디바이스를 동일한 드라이버의 최신 버전과 연결할 수 있습니다.

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

이에 대한 응답으로 DevCon은 드라이버가 Windows 로고 테스트를 통과하지 못했음을 설명하는 하드웨어 설치 경고를 표시합니다. 대화 상자에서 계속 단추를 선택하면 설치가 계속됩니다.

그런 다음 DevCon은 다음과 같은 성공 메시지를 표시합니다.

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

DevCon Update 작업의 비대화형 버전인 DevCon UpdateNI 작업을 사용하여 드라이버를 업데이트할 수도 있습니다. DevCon UpdateNI 작업은 응답이 필요한 모든 사용자 프롬프트를 표시하지 않으며 프롬프트에 대한 기본 응답을 가정한다는 점을 제외하고 DevCon Update 작업과 동일합니다.

다음 명령은 DevCon UpdateNI 작업을 사용하여 테스트 드라이버를 설치합니다.

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

이 경우 DevCon은 하드웨어 설치 경고를 표시하지 않습니다. 대신 기본 응답 인 설치 중지를 가정합니다. 따라서 DevCon은 드라이버를 업데이트할 수 없으며 실패 메시지를 표시합니다.

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

예제 33: 디바이스 설치

다음 명령은 DevCon 설치 작업을 사용하여 로컬 컴퓨터에 키보드 디바이스를 설치합니다. 이 명령에는 디바이스(keyboard.inf)에 대한 INF 파일의 전체 경로와 하드웨어 ID(*PNP030b)가 포함됩니다.

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

이에 대한 응답으로 DevCon은 디바이스를 설치했다고 보고합니다. 즉, 새 디바이스에 대한 디바이스 노드를 만들고 디바이스에 대한 드라이버 파일을 업데이트했습니다.

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

예제 34: 무인 설정을 사용하여 디바이스 설치

다음 예제에서는 Microsoft Windows XP의 무인 설치 중에 Microsoft 루프백 어댑터를 설치하는 방법을 보여 줍니다.

무인 설치 중에 이 디바이스를 설치하려면 플로피 디스크에 다음 파일을 추가하여 시작합니다. devcon.exe 및 netloop.inf(C:\Windows\inf\netloop.inf).

그런 다음 무인 설치 파일의 [GUIRunOnce] 섹션에 다음 DevCon 명령을 추가합니다.

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

이 명령은 하드웨어 ID *MSLOOP를 사용하여 루프백 어댑터를 식별합니다. "*MSLOOP" 앞의 작은따옴표 문자는 DevCon에 문자열을 문자 그대로 해석하도록 지시합니다. 즉, 별표를카드 와일드 문자가 아닌 하드웨어 ID의 일부로 해석합니다.

또한 이 명령은 DevCon이 설치 시 Netloop.inf 파일(플로피 디스크)을 사용하도록 지정합니다. /r 매개 변수는 설치를 완료하기 위해 다시 부팅해야 하는 경우에만 컴퓨터를 다시 부팅합니다.

마지막으로, 무인 설치 파일에 네트워크 구성 설정을 추가하고 무인 설정을 실행합니다.

예제 35: 디바이스 인스턴스 ID 패턴별로 디바이스 제거

다음 명령은 DevCon Remove 작업을 사용하여 컴퓨터에서 모든 USB 디바이스를 제거합니다. "USB\" 문자열로 시작하는 모든 디바이스 인스턴스 ID(레지스트리 경로)와 일치하는 디바이스 인스턴스 ID 패턴으로 디바이스를 식별합니다. at 문자(@)는 디바이스 인스턴스 ID를 하드웨어 ID 또는 호환 ID와 구분합니다. 이 명령에는 제거 프로시저를 적용하는 데 필요한 경우 시스템을 다시 부팅하는 /r 매개 변수도 포함됩니다.

Warning

패턴을 사용하여 디바이스를 제거하기 전에 영향을 받는 디바이스를 결정합니다. 이렇게 하려면 표시 명령에서 패턴(예: devcon status @usb\* 또는 devcon hwids @usb\*.)을 사용합니다.

devcon /r remove @usb\*

이에 대한 응답으로 DevCon은 제거한 디바이스의 디바이스 인스턴스 ID를 표시합니다.

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.

예제 36: 특정 네트워크 디바이스 제거

다음 명령은 DevCon Remove 작업을 사용하여 로컬 컴퓨터에서 NDISWAN 미니포트 드라이버를 제거합니다. 이 명령은 Net 클래스를 지정한 다음 하드웨어 ID 또는 호환 ID에 "ndiswan"이 포함된 클래스의 디바이스를 지정하여 검색을 구체화합니다. 이 명령에는 제거 프로시저를 적용하기 위해 다시 부팅해야 하는 경우 시스템을 다시 부팅하는 /r 매개 변수도 포함됩니다.

경고 패턴을 사용하여 디바이스를 제거하기 전에 영향을 받을 디바이스를 결정합니다. 이렇게 하려면 표시 명령에서 패턴(예: devcon status =net *ndiswan 또는 devcon hwids =net *ndiswan*.)을 사용합니다.

devcon /r remove =net *ndiswan*

이에 대한 응답으로 DevCon은 제거된 디바이스의 디바이스 인스턴스 ID를 표시합니다.

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

예제 37: 컴퓨터에서 새 디바이스 검사

다음 명령은 DevCon 다시 검사 작업을 사용하여 로컬 컴퓨터에서 새 디바이스를 검사합니다.

devcon rescan

이에 대한 응답으로 DevCon은 시스템을 검사했지만 새 디바이스를 찾지 않았다고 보고합니다.

Scanning for new hardware.
Scanning completed.

예제 38: 디바이스 다시 시작

다음 명령은 DevCon 다시 시작 작업을 사용하여 로컬 컴퓨터에서 루프백 어댑터를 다시 시작합니다. 이 명령은 검색을 Net 설치 클래스로 제한하고, 해당 클래스 내에서 루프백 어댑터 @'ROOT\*MSLOOP\0000의 디바이스 인스턴스 ID를 지정합니다. at 문자(@)는 문자열을 디바이스 인스턴스 ID로 식별합니다. 리터럴 검색을 요청하는 작은따옴표 문자(')를 사용하면 DevCon에서 ID의 별표를 와일드카드 문자로 해석할 수 없습니다.

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

이에 대한 응답으로 DevCon은 디바이스의 디바이스 인스턴스 ID를 표시하고 결과를 보고합니다.

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

예제 39: 로컬 컴퓨터 다시 부팅

다음 명령은 DevCon 다시 부팅 작업을 사용하여 로컬 컴퓨터에서 운영 체제를 다시 부팅하고 다시 부팅을 하드웨어 설치와 연결합니다. /r 매개 변수달리 DevCon 다시 부팅 작업은 다른 작업의 반환 코드에 의존하지 않습니다.

시스템을 다시 부팅해야 하는 스크립트 및 일괄 처리 파일에 이 명령을 포함할 수 있습니다.

devcon reboot

이에 대한 응답으로 DevCon은 컴퓨터를 다시 시작하고 있음을 나타내는 메시지를 표시합니다(로컬 컴퓨터 다시 부팅).

DevCon은 표준 ExitWindowsEx 함수를 사용하여 다시 부팅합니다. 사용자가 컴퓨터에 열려 있는 파일이 있거나 프로그램이 닫히지 않으면 사용자가 시스템 프롬프트에 응답하여 파일을 닫거나 프로세스를 종료할 때까지 시스템이 다시 부팅되지 않습니다.

예제 40: 레거시 디바이스에 하드웨어 ID 할당

다음 명령은 DevCon SetHwID 작업을 사용하여 하드웨어 ID(경고음)를 레거시 비프음 디바이스에 할당합니다.

경고음 레거시 디바이스에 하드웨어 ID 또는 호환 ID가 없기 때문에 이 명령은 디바이스의 디바이스 인스턴스 ID인 ROOT\LEGACY_BEEP\0000을 사용합니다. at 문자(@)를 사용하여 문자열이 디바이스 인스턴스 ID임을 나타냅니다.

이 명령은 기호 매개 변수를 사용하여 ID를 배치하지 않습니다. 기본적으로 DevCon은 하드웨어 ID 목록의 끝에 새 하드웨어 ID를 추가합니다. 이 경우 디바이스에 다른 하드웨어 ID가 없으므로 배치는 관련이 없습니다.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

이에 대한 응답으로 DevCon은 디바이스의 하드웨어 ID 목록에 경고음이 추가됨을 나타내는 메시지를 표시합니다. 결과 하드웨어 ID 목록도 표시합니다. 이 경우 목록에 하드웨어 ID가 하나만 있습니다.

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

예제 41: 모든 레거시 디바이스에 하드웨어 ID 추가

다음 명령은 DevCon SetHwID 작업을 사용하여 모든 레거시 디바이스의 하드웨어 ID 목록에 하드웨어 ID(레거시)를 추가합니다.

이 명령은 기호 매개 변수를 사용하여 - 디바이스의 하드웨어 ID 목록 끝에 새 하드웨어 ID를 추가합니다( 디바이스 중 하나에 대해 기본 설정 하드웨어 ID가 만들어진 경우). 또한 디바이스 인스턴스 ID 패턴을 @ROOT\LEGACY\*사용하여 컴퓨터의 레거시 디바이스, 즉 디바이스 인스턴스 ID가 시작되는 모든 디바이스를 ROOT\LEGACY*식별합니다.

devcon sethwid @ROOT\LEGACY* := -legacy

이에 대한 응답으로 DevCon은 영향을 받는 모든 디바이스에 대한 결과 하드웨어 ID 목록을 표시합니다.

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

디바이스 그룹에 동일한 하드웨어 ID를 할당한 후 다른 DevCon 작업을 사용하여 단일 명령으로 디바이스를 보고 변경할 수 있습니다.

예를 들어 다음 명령은 모든 레거시 디바이스의 상태 표시합니다.

devcon status legacy

예제 42: 모든 레거시 디바이스에서 하드웨어 ID 삭제

다음 명령은 DevCon SetHwID 작업을 사용하여 모든 레거시 디바이스에 대한 하드웨어 ID 목록에서 하드웨어 ID(레거시)를 삭제합니다.

이 명령은 하드웨어 ID인 레거시를 사용하여 해당 하드웨어 ID가 있는 모든 디바이스를 식별합니다. 그런 다음! 기호 매개 변수를 사용하여 레거시 하드웨어 ID를 삭제합니다.

devcon sethwid legacy := !legacy

이에 대한 응답으로 DevCon은 영향을 받는 모든 디바이스에 대한 결과 하드웨어 ID 목록을 표시합니다.

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

예제 43: 하드웨어 ID 추가, 삭제 및 바꾸기

다음 예제 시리즈에서는 DevCon SetHwID 작업의 다양한 기능을 사용하는 방법을 보여 줍니다.

이 시리즈에서는 디바이스 인스턴스 ID 인 ROOT\DeviceX\0000과 함께 가상의 디바이스 DeviceX를 사용합니다. DevCon을 사용하기 전에 디바이스에는 다음과 같은 하드웨어 ID 목록이 있었습니다.

Hw3 Hw4

다음 명령은 기호를 + 사용하여 DeviceX용 하드웨어 ID 목록의 시작 부분에 Hw1Hw2를 추가합니다. Hw2는 이미 목록에 표시되므로 추가되지 않고 이동됩니다. 이 명령은 ID 앞에 있는 문자(@)로 표시된 대로 디바이스 인스턴스 ID로 디바이스를 식별합니다.

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

이에 대한 응답으로 DevCon은 디바이스에 대한 새 하드웨어 ID 목록을 표시합니다. Hw1Hw2는 목록의 시작 부분에 지정된 순서로 표시됩니다.

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

또한 DevCon은 하나의 하드웨어 ID 목록, 즉 하나의 디바이스의 하드웨어 ID 목록을 수정했다고 보고합니다.

다음 명령은 ! 기호를 사용하여 Hw1 하드웨어 ID를 삭제합니다. 그런 다음 기호 매개 변수 없이 하드웨어 ID Hw5를 나열합니다. 기호 매개 변수가 없으면 SetHwID는 디바이스의 하드웨어 ID 목록 끝에 하드웨어 ID를 추가합니다.

이 명령은 DevCon SetHwID 작업의 다른 기호 매개 변수와 달리! 기호는 접두사로 사용하는 하드웨어 ID에만 적용된다는 것을 보여 줍니다.

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

이에 대한 응답으로 DevCon은 DeviceX에 대한 결과 하드웨어 ID 목록을 표시합니다.

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

다음 명령은 = 매개 변수를 사용하여 DeviceX 목록에 있는 모든 하드웨어 ID를 단일 하드웨어 ID인 DevX로 바꿉니다.

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

이에 대한 응답으로 DevCon은 DeviceX에 대한 결과 하드웨어 ID 목록을 표시합니다.

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

성공 메시지는 DevCon이 한 디바이스의 하드웨어 ID를 수정했음을 나타냅니다.

예제 44: HAL 강제 업데이트

다음 예제에서는 DevCon을 사용하여 컴퓨터에서 HAL을 업데이트하는 방법을 보여줍니다. 이 예제에서 테스터는 테스트 목적으로 컴퓨터에 가장 적합한 유니프로세서 APCI APIC HAL을 다중 프로세서 APCI APIC HAL로 바꾸려고 합니다.

첫 번째 명령은 DevCon SetHwID 작업을 사용하여 HAL의 하드웨어 ID를 유니프로세서 HAL의 하드웨어 ID인 acpiapic_up 다중 프로세서 HAL의 하드웨어 ID인 acpiapic_mp 변경합니다.

HAL의 INF 파일에는 유니프로세서 및 다중 프로세서 HA 모두에 대한 드라이버가 포함되어 있으므로 하드웨어 ID를 변경해야 합니다. 시스템은 디바이스의 하드웨어 ID에 따라 INF 파일에서 가장 적합한 드라이버를 선택합니다. 하드웨어 ID 를 변경하지 않으면 DevCon Update 명령은 유니프로세서 HAL 드라이버를 다시 설치하기만 하면 됩니다.

다음 명령에서 이 명령은 ID 앞의 문자로 표시된 대로 해당 인스턴스 ID 인 ROOT\ACPI_HAL\0000으로 @ HAL을 식별합니다. 이 명령은 문자를 사용하여 + HAL 목록에서 첫 번째 하드웨어 ID를 acpiapic_mp 만듭니다. 그런 다음! 문자를 사용하여 HAL에 대한 ID 목록에서 acpiapic_up 하드웨어 ID를 삭제합니다.

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

이에 대한 응답으로 DevCon은 HAL에 대해 다음과 같은 새 하드웨어 ID 목록을 표시합니다.

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

다음 명령은 DevCon 업데이트 작업을 사용하여 HAL에 대한 드라이버를 업데이트합니다.

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

그런 다음 DevCon은 다음과 같은 성공 메시지를 표시합니다.

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

예제 45: 드라이버 패키지 추가 및 제거

다음 예제에서는 DevCon을 사용하여 드라이버 저장소에 타사(OEM) 드라이버 패키지를 추가, 삭제 및 표시하는 방법을 보여 줍니다.

첫 번째 명령인 DevCon Dp_add 명령은 WDK의 Toaster 샘플 드라이버에 대한 INF 파일을 드라이버 저장소, 즉 %Windir%\inf 디렉터리에 복사합니다. 명령에는 Toaster 샘플 드라이버에 대한 INF 파일의 정규화된 경로가 포함됩니다.

이 명령은 타사(OEM) 드라이버 및 디바이스용이지만 Toaster 샘플을 사용하여 명령을 테스트할 수 있습니다.

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

이에 대한 응답으로 DevCon은 Toaster INF 파일을 드라이버 저장소에 추가하고 이름을 Oem2.inf로 지정했다고 보고합니다.

Driver Package 'oem2.inf' added.

드라이버 저장소에 복사하기 전에 Windows는 INF 파일의 이진 버전을 드라이버 저장소에 있는 INF 파일의 이진 버전과 비교하여 중복 파일을 추가하지 않는지 확인합니다. 예를 들어 드라이버 저장소에 Toaster.inf를 추가하는 명령을 반복하는 경우 DevCon은 새 OEM*.inf 파일을 만들지 않습니다. 다음 DevCon 출력과 같이 기존 파일의 이름만 보고합니다.

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

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

드라이버 저장소에서 Toaster 드라이버에 대한 드라이버 패키지를 제거하려면 드라이버의 OEM*.inf 파일 이름을 사용해야 합니다. 드라이버의 파일 이름을 찾으려면 DevCon Dp_enum 명령을 사용합니다.

다음 명령은 모든 OEM 드라이버 패키지와 몇 가지 속성을 나열합니다.

devcon dp_enum

이에 대한 응답으로 DevCon은 다음 표시를 생성합니다.

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

이 정보는 지정되지 않은 디바이스 클래스(Toaster)와 함께 Microsoft에서 제공하는 드라이버 패키지의 이름이 OEM2.inf임을 나타냅니다. 이 정보를 사용하여 파일과 연결된 드라이버 패키지를 삭제할 수 있습니다.

다음 명령은 연결된 미리 컴파일된 INF(.pnf) 및 카탈로그(.cat) 파일과 함께 드라이버 저장소에서 OEM2.inf 파일을 삭제합니다. 이 명령은 OEM*.inf 파일 이름을 사용합니다.

devcon dp_delete oem2.inf

이에 대한 응답으로 DevCon은 명령이 성공했음을 나타내는 메시지를 표시합니다.

Driver Package 'oem2.inf' deleted.

OEM*.inf 파일 이름은 DevCon Dp_delete 명령에 필요합니다. INF 파일의 원래 이름을 사용하려고 하면 다음 DevCon 출력과 같이 명령이 실패합니다.

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