다음을 통해 공유


설치된 디바이스 열거

레지스트리 키를 직접 사용하여 디바이스를 열거하면 안 됩니다. 레지스트리 키에는 시스템에 설치된 디바이스를 열거하는 데 필요한 정보가 포함되어 있지 않습니다. 디바이스가 실제로 존재하는지 아니면 가상 디바이스(연결되지 않은 디바이스)인지와 같은 이 정보는 플러그 앤 플레이(PnP) 관리자가 보유합니다. PnP 관리자는 레지스트리 정보의 추가 필터링도 수행합니다.

설치된 디바이스를 안전하게 열거하려면 다음 단계를 수행합니다.

  • 구성 관리자 함수 사용:

    1. CM_Get_Device_ID_List 사용하여 고유한 디바이스 instance 식별자(ID) 문자열 목록을 검색합니다. 시스템에 있는 디바이스에 대해서만 정보를 검색하려면 ulFlags 매개 변수에서 CM_GETIDLIST_FILTER_PRESENT 설정합니다.

    2. CM_Locate_DevNode 고유한 디바이스 instance ID를 사용하여 다른 구성 관리자 API와 함께 사용할 디바이스를 나타내는 DEVINST를 검색할 수 있습니다.

  • SetupAPI 함수 사용:

    1. SetupDiGetClassDevs를 사용하여 디바이스 집합에 대한 정보를 검색합니다. 시스템에 있는 디바이스에 대해서만 정보를 검색하려면 Flags 매개 변수에서 DIGCF_PRESENT 설정합니다.

    2. SetupDiEnumDeviceInfo를 사용하여 집합의 디바이스를 열거합니다.

    3. SetupDiEnumDeviceInfo에서 반환된 SP_DEVINFO_DATA 다른 SetupApi API와 함께 사용하거나 SetupDiGetDeviceInstanceId를 사용하여 디바이스에 대한 고유한 디바이스 instance 식별자(ID)를 검색할 수 있습니다.