컨테이너 ID를 생성하는 방법
Windows 7부터 PnP(플러그 앤 플레이) 관리자는 다음 세 가지 메커니즘 중 하나를 통해 디바이스 노드(devnode)에 대한 컨테이너 ID를 생성합니다.
버스 드라이버는 컨테이너 ID를 제공합니다.
devnode에 컨테이너 ID를 할당할 때 PnP 관리자는 먼저 devnode의 버스 드라이버가 컨테이너 ID를 제공할 수 있는지 여부를 확인합니다. 버스 드라이버는 Parameters.QueryId.IdType 필드가 BusQueryContainerID로 설정된 IRP_MN_QUERY_ID 요청을 통해 컨테이너 ID를 제공합니다.
버스 드라이버가 컨테이너 ID를 제공하려는 경우 실제 디바이스 하드웨어에 포함된 정품 컨테이너 ID를 가져오거나 디바이스 하드웨어에서 버스별 고유 ID를 사용하여 컨테이너 ID를 생성할 수 있습니다. 버스별 고유 ID의 몇 가지 예로는 디바이스의 펌웨어에 있는 디바이스의 일련 번호 또는 MAC(미디어 액세스 제어) 주소가 있습니다.
참고
IHV(독립 하드웨어 공급업체)는 버스 드라이버에서 보고한 컨테이너 ID의 고유성을 담당합니다.
PnP 관리자는 이동식 디바이스 기능을 통해 컨테이너 ID를 생성합니다.
버스 드라이버가 열거 중인 devnode에 대한 컨테이너 ID를 제공할 수 없는 경우 PnP 관리자는 이동식 디바이스 기능을 사용하여 디바이스에 대해 열거된 모든 devnode에 대한 컨테이너 ID를 생성합니다. 버스 드라이버는 IRP_MN_QUERY_CAPABILITIES 요청에 대한 응답으로 이 디바이스 기능을 보고합니다.
자세한 내용은 이동식 디바이스 기능에서 생성된 컨테이너 ID를 참조하세요.
PnP 관리자는 이동식 디바이스 기능의 재정의를 통해 컨테이너 ID를 생성합니다.
참고
Windows 10 DPWS 디바이스는 항상 이 메서드를 사용하여 디바이스에 대한 컨테이너 ID를 생성합니다.
재정의 메커니즘은 이동식 디바이스 기능의 값을 변경하지 않지만 PnP 관리자가 디바이스에 대한 컨테이너 ID를 생성할 때 이동식 디바이스 기능의 값이 아니라 재정의 설정을 사용하도록 강제합니다.
예를 들어 이동식 디바이스 기능의 재정의가 디바이스를 이동식으로 지정하는 경우 PnP 관리자는 디바이스에 대해 열거된 모든 devnode에 대한 컨테이너 ID를 생성합니다. 이 작업은 디바이스가 자신을 이동식으로 보고했는지 여부에 관계없이 수행됩니다.
IHV는 디바이스에서 보고한 이동식 디바이스 기능을 재정의하는 키로 레지스트리를 채울 수 있습니다. 이 재정의 메커니즘은 이동식 디바이스 기능을 지원하지 않거나 잘못 보고하는 레거시 디바이스에 유용합니다.
자세한 내용은 이동식 디바이스 기능 재정의에서 생성된 컨테이너 ID를 참조하세요.
이러한 방법 외에도 시스템은 ACPI BIOS 개체 설정을 사용하여 디바이스 컨테이너 그룹을 지정합니다. 자세한 내용은 디바이스 컨테이너 그룹화에 ACPI 사용을 참조하세요.