SetupDiGetDeviceProperty 함수는 디바이스 instance 속성을 검색합니다.
구문
WINSETUPAPI BOOL SetupDiGetDevicePropertyW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[out, optional] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize,
[in] DWORD Flags
);
매개 변수
[in] DeviceInfoSet
디바이스 instance 속성을 검색할 디바이스 instance 포함된 디바이스 정보 집합에 대한 핸들입니다.
[in] DeviceInfoData
디바이스 instance 속성을 검색할 디바이스 instance 나타내는 SP_DEVINFO_DATA 구조체에 대한 포인터입니다.
[in] PropertyKey
요청된 디바이스 instance 속성의 디바이스 속성 키를 나타내는 DEVPROPKEY 구조체에 대한 포인터입니다.
[out] PropertyType
요청된 디바이스 instance 속성의 속성-데이터 형식 식별자를 수신하는 DEVPROPTYPE 형식 변수에 대한 포인터입니다. 여기서 property-data-type 식별자는 기본 데이터 형식 식별자 간의 비트 OR이고 기본 데이터 형식이 수정된 경우 property-data-type 한정자입니다.
[out, optional] PropertyBuffer
요청된 디바이스 instance 속성을 수신하는 버퍼에 대한 포인터입니다. SetupDiGetDeviceProperty 는 버퍼가 모든 속성 값 데이터를 저장할 수 있을 만큼 큰 경우에만 요청된 속성을 검색합니다. 포인터는 NULL일 수 있습니다. 포인터가 NULL 로 설정되고 RequiredSize 가 제공되면 SetupDiGetDeviceProperty 는 *RequiredSize에서 속성의 크기를 바이트 단위로 반환합니다.
[in] PropertyBufferSize
PropertyBuffer 버퍼의 크기(바이트)입니다. PropertyBuffer가 NULL로 설정된 경우 PropertyBufferSize를 0으로 설정해야 합니다.
[out, optional] RequiredSize
속성을 검색하는 경우 디바이스 instance 속성의 크기(바이트)를 수신하는 DWORD 형식 변수에 대한 포인터이거나 버퍼가 충분히 크지 않은 경우 필요한 버퍼 크기입니다. 이 포인터는 NULL로 설정할 수 있습니다.
[in] Flags
이 매개 변수는 0으로 설정해야 합니다.
반환 값
SetupDiGetDeviceProperty 는 성공하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE를 반환하고 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.
다음 표에는 이 함수가 기록할 수 있는 몇 가지 일반적인 오류 코드가 포함되어 있습니다.
| 반환 코드 | 설명 |
|---|---|
|
Flags 값이 0이 아닙니다. |
|
DevInfoSet에서 지정한 디바이스 정보 집합이 잘못되었습니다. |
|
제공된 매개 변수가 잘못되었습니다. 한 가지 가능성은 디바이스 정보 요소가 유효하지 않다는 것입니다. |
|
PropertyKey에서 제공하는 속성 키가 잘못되었습니다. |
|
지정되지 않은 내부 데이터 값이 잘못되었습니다. |
|
사용자 버퍼가 잘못되었습니다. 한 가지 가능성은 PropertyBuffer 가 NULL 이고 PropertBufferSize 가 0이 아니라는 것입니다. |
|
DevInfoData에서 지정한 디바이스 instance 존재하지 않습니다. |
|
PropertyBuffer 버퍼가 너무 작아서 요청된 속성 값을 보유할 수 없거나 시스템 호출에 전달된 내부 데이터 버퍼가 너무 작습니다. |
|
작업을 완료하는 데 사용할 수 있는 시스템 메모리가 부족했습니다. |
|
요청된 디바이스 속성이 없습니다. |
|
호출자에게 관리자 권한이 없습니다. |
설명
SetupDiGetDeviceProperty 는 통합 디바이스 속성 모델의 일부입니다.
SetupAPI는 SetupDiGetDeviceProperty의 유니코드 버전만 지원합니다.
디바이스 instance 대해 설정된 디바이스 속성을 나타내는 디바이스 속성 키를 가져오려면 SetupDiGetDevicePropertyKeys를 호출합니다.
디바이스 instance 속성을 설정하려면 SetupDiSetDeviceProperty를 호출합니다.
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
| 대상 플랫폼 | DesktopFor universal, call CM_Get_DevNode_Property |
| 머리글 | setupapi.h(SetupAPI.h 포함) |
| 라이브러리 | SetupAPI.lib |
| DLL | SetupAPI.dll |
| API 세트 | ext-ms-win-setupapi-classinstallers-l1-1-0(Windows 8 도입) |