다음을 통해 공유


CM_Get_Device_ID_ListW 함수(cfgmgr32.h)

CM_Get_Device_ID_List 함수는 로컬 컴퓨터의 디바이스 인스턴스대한 디바이스 인스턴스 ID 목록을 검색합니다.

통사론

CMAPI CONFIGRET CM_Get_Device_ID_ListW(
  [in, optional] PCWSTR  pszFilter,
  [out]          PZZWSTR Buffer,
  [in]           ULONG   BufferLen,
  [in]           ULONG   ulFlags
);

매개 변수

[in, optional] pszFilter

컴퓨터의 디바이스 ID(인스턴스 식별자) 하위 집합으로 설정되거나 NULL문자열에 대한 호출자 제공 포인터입니다. ulFlags대한 다음 설명을 참조하세요.

[out] Buffer

NULL로 종료된 디바이스 인스턴스 식별자 문자열 집합을 수신하는 버퍼의 주소입니다. 집합의 끝은 추가 NULL의해 종료됩니다. 필요한 버퍼 크기는 CM_Get_Device_ID_List_Size호출하여 가져와야 합니다.

[in] BufferLen

Buffer지정된 버퍼의 호출자 제공 길이(문자)입니다.

[in] ulFlags

검색 필터를 지정하는 다음 호출자 제공 비트 플래그 중 하나입니다.

CM_GETIDLIST_FILTER_BUSRELATIONS

이 플래그가 설정되면 pszFilter 디바이스 인스턴스 식별자를 지정해야 합니다. 이 함수는 지정된 디바이스 인스턴스의 버스 관계 디바이스 인스턴스 ID를 반환합니다.

CM_GETIDLIST_FILTER_CLASS(Windows 7 이상 버전)

이 플래그가 설정되면 pszFilter 디바이스 설정 클래스 GUID를 지정하는 문자열이 포함됩니다. 반환된 목록에는 속성(CM_DRP_CLASSGUID 상수에서 참조)이 지정된 디바이스 설정 클래스 GUID와 일치하는 디바이스 인스턴스가 포함됩니다.

CM_DRP_CLASSGUID 상수는 Cfgmgr32.h정의됩니다.

CM_GETIDLIST_FILTER_PRESENT(Windows 7 이상 버전)

이 플래그를 설정하면 반환된 목록에는 현재 시스템에 있는 디바이스 인스턴스만 포함됩니다. 이 값은 CM_GETIDLIST_FILTER_CLASS 같은 다른 ulFlags 값과 결합할 수 있습니다.

CM_GETIDLIST_FILTER_TRANSPORTRELATIONS(Windows 7 이상 버전)

이 플래그가 설정되면 pszFilter 복합 디바이스 노드(devnode)의 디바이스 인스턴스 식별자를 지정해야 합니다.

이 함수는 지정된 복합 devnode의 전송 관계를 나타내는 devnodes의 디바이스 인스턴스 식별자를 반환합니다.

복합 devnodes 및 전송 관계에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.

CM_GETIDLIST_DONOTGENERATE

CM_GETIDLIST_FILTER_SERVICE 경우에만 사용됩니다. 설정된 경우 디바이스 트리에 지정된 서비스에 대한 devnode가 없는 경우 이 플래그는 함수가 서비스에 대한 devnode를 만들지 못하게 합니다.

CM_GETIDLIST_FILTER_EJECTRELATIONS

이 플래그가 설정되면 pszFilter 디바이스 인스턴스 식별자를 지정해야 합니다. 이 함수는 지정된 디바이스 인스턴스의 배출 관계 디바이스 인스턴스 ID를 반환합니다.

CM_GETIDLIST_FILTER_ENUMERATOR

이 플래그가 설정되면 pszFilter 디바이스 열거자의 이름을 지정해야 하며, 필요에 따라 디바이스 ID. 문자열 형식은 ROOT 또는 ROOT\*PNP0500같은 EnumeratorName\DeviceID.

pszFilter 열거자 이름만 제공하면 함수는 열거자와 연결된 각 디바이스의 인스턴스에 디바이스 인스턴스 ID를 반환합니다. CM_Enumerate_Enumerators호출하여 열거자 이름을 가져올 수 있습니다.

pszFilter 열거자와 디바이스 ID모두 제공하는 경우 함수는 열거자와 연결된 지정된 디바이스의 인스턴스에 대해서만 디바이스 인스턴스 ID를 반환합니다.

CM_GETIDLIST_FILTER_NONE

이 플래그가 설정되면 pszFilter 무시되고 시스템의 모든 디바이스 목록이 반환됩니다.

CM_GETIDLIST_FILTER_POWERRELATIONS

이 플래그가 설정되면 pszFilter 디바이스 인스턴스 식별자를 지정해야 합니다. 이 함수는 지정된 디바이스 인스턴스의 전원 관계에 대한 디바이스 인스턴스 ID를 반환합니다.

CM_GETIDLIST_FILTER_REMOVALRELATIONS

이 플래그가 설정되면 pszFilter 디바이스 인스턴스 식별자를 지정해야 합니다. 이 함수는 지정된 디바이스 인스턴스의 제거 관계 디바이스 인스턴스 ID를 반환합니다.

CM_GETIDLIST_FILTER_SERVICE

이 플래그가 설정되면 pszFilter Microsoft Windows 서비스(일반적으로 드라이버)의 이름을 지정해야 합니다. 이 함수는 지정된 서비스에 의해 제어되는 디바이스 인스턴스에 대한 디바이스 인스턴스 ID를 반환합니다.

디바이스 트리에 지정된 서비스에 대한 devnode 포함되어 있지 않으면 이 함수는 기본적으로 하나를 만듭니다. 이 동작을 억제하려면 CM_GETIDLIST_DONOTGENERATE 설정합니다.

검색 필터 플래그가 지정되지 않은 경우 함수는 모든 디바이스 인스턴스에 대한 모든 디바이스 인스턴스 ID를 반환합니다.

반환 값

작업이 성공하면 함수는 CR_SUCCESS 반환합니다. 그렇지 않으면 Cfgmgr32.h정의된 CR_ 접두사 오류 코드 중 하나를 반환합니다.

발언

Windows 7부터 패킷 기반 데이터에 대한 여러 전송 경로를 지원하는 디바이스를 복합 디바이스라고 하며 복합 devnode표시됩니다. 복합 devnode는 복합 devnode가 물리적 디바이스에 대한 여러 경로를 가질 수 있더라도 사용자 및 애플리케이션에 대한 복합 디바이스를 단일 디바이스로 논리적으로 나타냅니다.

물리적 디바이스에 대한 각 활성 전송 경로는 전송 devnode로 표시되며 복합 디바이스에 대한 전송 관계라고 합니다.

복합 devnode(관련 전송 devnode는 아님)는 디바이스 인터페이스를 애플리케이션 및 시스템에 노출합니다. 애플리케이션에서 이러한 공용 디바이스 인터페이스를 사용하는 경우 복합 디바이스는 패킷 기반 데이터를 이러한 전송 devnode 중 하나 이상으로 라우팅한 다음, 데이터를 실제 디바이스로 전송합니다.

예를 들어 실제 휴대폰이 USB 및 Bluetooth 버스의 컴퓨터에 동시에 연결된 경우 각 버스는 해당 버스의 자식 전송 devnode를 열거하여 디바이스의 물리적 연결을 나타냅니다.

이 경우 ulFlags CM_GETIDLIST_FILTER_TRANSPORTRELATIONS 플래그를 설정하고 pszFilter휴대폰의 복합 devnode의 디바이스 인스턴스 ID를 지정하면 함수는 Buffer 매개 변수의 두 전송 devnode에 대한 디바이스 인스턴스 ID를 반환합니다.

디바이스 인스턴스 ID에 대한 자세한 내용은디바이스 ID 문자열을 참조하세요.

메모

cfgmgr32.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 CM_Get_Device_ID_List 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Microsoft Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 cfgmgr32.h(Cfgmgr32.h 포함)
라이브러리 Cfgmgr32.lib
DLL CfgMgr32.dll

참고 항목

CM_Get_Device_ID_List_Size