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
[out] Buffer
NULL로 종료된 디바이스 인스턴스 식별자 문자열 집합을 수신하는 버퍼의 주소입니다. 집합의 끝은 추가 NULL의해 종료됩니다. 필요한 버퍼 크기는 CM_Get_Device_ID_List_Size호출하여 가져와야 합니다.
[in] BufferLen
Buffer지정된 버퍼의 호출자 제공 길이(문자)입니다.
[in] ulFlags
검색 필터를 지정하는 다음 호출자 제공 비트 플래그 중 하나입니다.
CM_GETIDLIST_FILTER_BUSRELATIONS
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_CLASS(Windows 7 이상 버전)
이 플래그가 설정되면 pszFilter
CM_DRP_CLASSGUID 상수는 Cfgmgr32.h정의됩니다.
CM_GETIDLIST_FILTER_PRESENT(Windows 7 이상 버전)
이 플래그를 설정하면 반환된 목록에는 현재 시스템에 있는 디바이스 인스턴스만 포함됩니다. 이 값은 CM_GETIDLIST_FILTER_CLASS 같은 다른 ulFlags 값과 결합할 수 있습니다.
CM_GETIDLIST_FILTER_TRANSPORTRELATIONS(Windows 7 이상 버전)
이 플래그가 설정되면 pszFilter
이 함수는 지정된 복합 devnode의 전송 관계를 나타내는 devnodes의 디바이스 인스턴스 식별자를 반환합니다.
복합 devnodes 및 전송 관계에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.
CM_GETIDLIST_DONOTGENERATE
CM_GETIDLIST_FILTER_SERVICE 경우에만 사용됩니다. 설정된 경우 디바이스 트리에 지정된 서비스에 대한 devnode가 없는 경우 이 플래그는 함수가 서비스에 대한 devnode를 만들지 못하게 합니다.
CM_GETIDLIST_FILTER_EJECTRELATIONS
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_ENUMERATOR
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_NONE
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_POWERRELATIONS
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_REMOVALRELATIONS
이 플래그가 설정되면 pszFilter
CM_GETIDLIST_FILTER_SERVICE
이 플래그가 설정되면 pszFilter
디바이스 트리에 지정된 서비스에 대한 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에 대한 자세한 내용은
메모
cfgmgr32.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 CM_Get_Device_ID_List 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | cfgmgr32.h(Cfgmgr32.h 포함) |
라이브러리 | Cfgmgr32.lib |
DLL | CfgMgr32.dll |