다음을 통해 공유


하드웨어 ID

하드웨어 ID는 Windows에서 디바이스를 드라이버 패키지에 일치시키는 데 사용하는 공급업체가 정의한 식별 문자열입니다. 하드웨어 ID는 디바이스를 식별하며, 해당 ID를 가진 디바이스에서 작동할 수 있다고 선언한 모든 드라이버 패키지가 어느 정도의 기능을 수행할 수 있음을 나타냅니다. 대부분의 경우 디바이스에는 둘 이상의 하드웨어 ID가 연결되어 있습니다. 일반적으로 하드웨어 ID 목록은 디바이스에 가장 적합하지 않은 항목으로 정렬됩니다. 예를 들어 디바이스의 개념적 하드웨어 ID 목록은 다음과 같습니다.

<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>

여기서 실제 하드웨어 ID는 하드웨어 ID의 형식 요구 사항을 따르는 문자열을 사용하여 이러한 개념을 나타냅니다.

디바이스에 대한 하드웨어 ID 만들기

하드웨어 ID는 디바이스의 열거자(버스 드라이버)에 의해 PnP(플러그 앤 플레이 관리자)에 보고됩니다. 일반적으로 버스 드라이버 작성자가 PnP에 보고하는 디바이스에 대한 새 하드웨어 ID를 만들어야 하는 경우 다음 제네릭 형식 중 하나를 사용합니다.

<enumerator>\<enumerator-specific-device-ID>

이 형식은 단일 열거자가 PnP(플러그 앤 플레이) 관리자에 보고하는 개별 PnP 디바이스에 가장 일반적입니다.

\*<generic-device-ID>

별표는 둘 이상의 열거자가 ISAPNP 및 BIOS와 같은 디바이스를 지원한다는 것을 나타냅니다.

<device-class-specific-ID>

자세한 내용은 제네릭 식별자 을 참조하세요.

자체적으로 설정된 명명 규칙이 있는 기존 디바이스 클래스는 사용자 지정 형식을 사용할 수 있습니다. 해당 하드웨어 ID 형식에 대한 자세한 내용은 해당 버스의 하드웨어 사양을 참조하세요.

NULL 종결자를 제외한 하드웨어 ID의 문자 수는 MAX_DEVICE_ID_LEN미만이어야 합니다. 이 제약 조건은 하드웨어 ID의 모든 필드 길이와 \\ 필드 구분 기호의 합계에 적용됩니다. 자세한 내용은 Operations 섹션의 IRP_MN_QUERY_ID를 참조하세요.

루트 열거형 디바이스에 대한 하드웨어 ID

루트 열거형 디바이스는 하드웨어 ID를 제공할 수 있는 API를 사용하여 만들 수 있다는 측면에서 특별합니다. ROOT\SYSTEM 같은 제네릭 네임스페이스를 공유하는 하드웨어 ID가 있는 루트 열거형 디바이스는 Windows를 업데이트할 때 디바이스 관리자에서 노란색 경고 아이콘이 나타날 수 있습니다.

루트 열거형 디바이스가 있는 각 드라이버에 대해 고유한 네임스페이스를 사용하여 이 오류를 방지할 수 있습니다. USB 또는 시스템 디바이스의 경우 ROOT\USB이나 ROOT\SYSTEM" 대신 ROOT\[COMPANYNAME]\[DEVICENAME]를 사용합니다. 그런 다음 설치하기 전에 devnode가 이미 있는지 확인합니다.

디바이스에 대한 하드웨어 ID 목록 가져오기

지정된 디바이스에 대한 하드웨어 ID 목록을 찾으려면 다음 단계를 수행합니다.

  1. 디바이스 관리자를 엽니다.
  2. 트리에서 디바이스를 찾습니다.
  3. 디바이스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
  4. 세부 정보 탭을 선택합니다.
  5. 속성 목록에서 하드웨어 ID 또는 호환 가능한 ID를 선택하십시오.

디바이스에서 DEVPKEY_Device_HardwareIds 속성을 검색하여 하드웨어 ID 목록을 프로그래밍 방식으로 가져올 수도 있습니다. 예를 들어 해당 속성은 IoGetDevicePropertyData, SetupDiGetDeviceProperty또는 CM_Get_DevNode_Property같은 API를 사용하여 검색할 수 있습니다.

이 루틴에서 검색하는 하드웨어 ID 목록은 REG_MULTI_SZ 값입니다. 각 하드웨어 ID와 마지막 NULL 종결자를 포함하여, 하드웨어 목록의 최대 문자 수는 REGSTR_VAL_MAX_HCID_LEN입니다. 하드웨어 ID 목록에서 가능한 최대 ID 수는 64개입니다.

하드웨어 ID의 예

다음은 PnP 디바이스에 대한 일반 식별자 예입니다.

root\*PNP0F08

다음은 PCI 디바이스대한 식별자의 예입니다.

PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02