다음을 통해 공유


이동식 디바이스 기능 재정의에서 생성된 컨테이너 ID

Windows 7부터 새 디바이스는 버스별 고유 ID를 제공해야 합니다( Bus-Specific 고유 ID에서 생성된 컨테이너 ID에 설명된 대로).

또는 디바이스 및 버스 드라이버가 이동식 디바이스 기능을 올바르게 설정해야 합니다( 이동식 디바이스 기능에서 생성된 컨테이너 ID에 설명됨). 이동식 디바이스 기능에 대한 자세한 내용은 이동식 디바이스 기능개요를 참조하세요.

Windows 7 이상 버전의 Windows는 보고된 이동식 디바이스 기능을 재정의하는 메커니즘도 지원합니다. 이 메커니즘은 이동식 디바이스 기능을 잘못 보고하는 레거시 디바이스에 유용합니다.

재정의 메커니즘은 이동식 디바이스 기능의 값을 변경하지 않지만 PnP 관리자가 디바이스에 대한 컨테이너 ID를 생성할 때 이동식 디바이스 기능의 값이 아니라 재정의 설정을 사용하도록 강제합니다.

이 재정의 메커니즘을 통해 레지스트리 기반 메서드를 통해 컨테이너 ID를 생성할 수 있습니다. 디바이스의 최상위(부모) 디바이스 노드(devnode)에 대해 컨테이너 ID가 생성되는 즉시 이동 식 디바이스 기능에서 생성된 컨테이너 ID에 설명된 추론을 통해 디바이스의 각 자식 devnode에 의해 동일한 컨테이너 ID가 상속됩니다.

재정의 메커니즘은 특정 디바이스에 매핑되는 레지스트리 키로 구성된 레지스트리 기반 조회 테이블입니다. 이 재정의 테이블은 DeviceOverrides 레지스트리 키 아래에 유지 관리되며 다음 레지스트리 키 및 하위 키로 구성됩니다.

테이블 수준 레지스트리 키/하위 키 이름 설명

1

장치 덮어쓰기

모든 이동식 디바이스 기능 재정의에 대한 부모 키입니다.

2

하드웨어ID

이동식 디바이스 기능 재정의가 적용되는 디바이스의 하드웨어 ID 를 지정합니다.

이 하위 키의 이름은 실제 하드웨어 ID이며 모든 백슬래시('') 문자가 숫자('#') 문자로 바뀝니다.

2

CompatibleID

이동식 디바이스 기능 재정의가 적용되는 디바이스의 호환 ID 를 지정합니다.

이 하위 키의 이름은 실제 하드웨어 ID이며 모든 백슬래시('') 문자가 숫자('#') 문자로 바뀝니다.

3

LocationPaths

디바이스의 부모 디바이스 노드(devnode)의 위치 경로에만 이동식 디바이스 기능 재정의가 적용되도록 지정합니다.

3

ChildLocationPaths

디바이스 자식 devnodes의 위치 경로에 이동식 디바이스 기능 재정의가 적용되도록 지정합니다.

메모LocationPaths 레지스트리 하위 키를 지정하거나 부모 devnode에 대해 ChildLocationPaths 레지스트리 하위 키를 지정하지 않는 한 지정된 디바이스의 부모 devnode는 이동식 디바이스 기능 재정의의 영향을 받지 않습니다.

4

LocationPath

이동식 디바이스 기능 재정의가 적용되는 devnode의 개별 위치 경로를 지정합니다.

이 하위 키의 이름은 컴퓨터에 설치된 디바이스의 단일 devnode 인스턴스에 대한 실제 위치 경로입니다.

4

*

이동식 디바이스 기능 재정의가 지정된 디바이스의 모든 devnode에 적용되도록 지정합니다.

LocationPath* 레지스트리 하위 키 내에서 DWORD 값(이동식)은 적용 가능한 devnode가 이동식(1) 또는 이동식(0)으로 간주되는지 여부를 지정합니다.

예제 1

다음은 LocationPaths 레지스트리 하위 키를 통해 지정된 위치 경로 외에도 HardwareID 레지스트리 하위 키와 일치하는 devnode에 대한 디바이스 재정의를 보여 줍니다.

이 예제에서는 재정의가 이동식 장치 기능을 비활성화하며, 이는 위치 경로 PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)에서 USB\VID_1234&PID_5678 하드웨어 ID를 가진 모든 devnode에 적용됩니다.

다음은 이 재정의에 대한 레지스트리 테이블 형식의 예입니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_1234&PID_5678
        LocationPaths
            PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)
                Removable=0

이 예제 USB#VID_1234&PID_5678 에서는 HardwareID 레지스트리 하위 키의 이름이고 PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)LocationPath 레지스트리 하위 키의 이름입니다.

이렇게 재정의하면 PnP(플러그 앤 플레이) 관리자의 디바이스 토폴로지 해석이 변경됩니다. 하드웨어 ID 값이 USB\VID_1234&PID_5678인 devnode가 레지스트리에서 제거 불가능으로 표시된 것을 주의하십시오. PnP 관리자는 devnode를 부모에서 제거할 수 없는 것으로 해석하기 때문에 이 devnode에 대해 새 컨테이너 ID가 생성되지 않습니다. 대신 USB\VID_1234&PID_5678(및 모든 자식)는 해당 부모의 컨테이너 ID(ContainerID {A})를 상속합니다.

트리의 모든 devnodes는 동일한 컨테이너 ID를 가지므로 이 재정의의 결과는 단일 디바이스 그룹화입니다. 디바이스 USB\VID_1234&PID_5678 컴퓨터와 통합된 것으로 해석됩니다.

다음 다이어그램은 결과 디바이스 토폴로지 및 연결된 컨테이너 ID 할당을 보여 있습니다.

devnode를 이동식이 아닌 것으로 표시하는 이동식 디바이스 기능 재정의를 보여 주는 다이어그램

이전 예제에서는 자주 발생하는 devnode 토폴로지를 보여 줍니다. 이는 특정 버스 위치에 하드웨어적으로 연결된 휴대용 컴퓨터의 디바이스가 자신을 이동식으로 잘못 보고하는 경우입니다. 웹캠 또는 생체 인식(지문) 센서와 같이 컴퓨터와 물리적으로 통합된 디바이스는 사용자가 컴퓨터에서 물리적으로 분리할 수 없으므로 이동식으로 보고해서는 안 됩니다. 이동식 재정의를 사용하면 독립 하드웨어 공급업체(IHV) 또는 OEM(원래 장비 제조업체)이 PnP 관리자가 이동식 디바이스 기능을 해석하는 방식을 변경하여 디바이스의 컨테이너 ID 할당에 영향을 줄 수 있습니다.

예제 2

다음은 특정 하드웨어 ID 값과 일치하는 모든 devnode에 대한 이동식 디바이스 기능 재정의를 보여 줍니다.

이 예제에서는 오버라이드가 이동식 디바이스 기능을 활성화하며, 하드웨어 ID 값이 USB\VID_062A&PID_0000인 디바이스 노드에 오버라이드가 적용됩니다.

다음은 이 재정의에 대한 레지스트리 테이블 형식에 대한 개략적인 설명입니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_062A&PID_00001
        LocationPaths
            *
                Removable=1

1 HardwareID 레지스트리 하위 키의 이름입니다.

이 예제에서 USB\VID_1234&PID_5678 하드웨어 ID의 디브노드는 기기의 이동 가능 기능을 올바르게 보고합니다. PnP 관리자가 이를 위해 컨테이너 ID(ContainerID {B})와 모든 자식 장치 노드를 생성합니다.

그러나 USB\VID_062A&PID_0000 하드웨어 ID를 가진 자식 devnode가 오버라이드와 일치합니다. 따라서 PnP 관리자는 이 devnode 및 모든 자식 devnode에 대해 포함된 다른 ID(ContainerID {C})를 생성합니다.

이전과 마찬가지로 이 재정의는 디바이스 토폴로지에 대한 PnP 관리자의 해석을 변경합니다. 물리적 디바이스에는 두 개의 컨테이너 ID가 할당되며 Windows에서 두 개의 디바이스로 표시됩니다. USB\VID_062A&PID_0000 하드웨어 ID를 가진 devnode는 devnode를 장치로 그룹화할 때 분리 가능한 것으로 해석됩니다. 이렇게 하면 디바이스 이동식 기능에 대해 devnode에서 보고한 값이 변경되지 않습니다.

또한 이 재정의를 USB\VID_062A&PID_0000 하드웨어 ID 가 있는 컴퓨터의 모든 devnode에 적용해야 함을 나타내기 위해 * 레지스트리 하위 키가 지정되었습니다.

다음 다이어그램은 결과 디바이스 토폴로지 및 연결된 컨테이너 ID 할당을 보여 있습니다.

devnode를 이동식으로 표시하는 이동식 디바이스 기능 재정의를 보여 주는 다이어그램