SetupDiGetClassPropertyKeysExW 함수(setupapi.h)
SetupDiGetClassPropertyKeysEx 함수는 로컬 또는 원격 컴퓨터에서 디바이스 설정 클래스 또는 디바이스 인터페이스 클래스에 대해 설정된 디바이스 속성을 나타내는 디바이스 속성 키의 배열을 검색합니다.
구문
WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
[in] const GUID *ClassGuid,
[out, optional] DEVPROPKEY *PropertyKeyArray,
[in] DWORD PropertyKeyCount,
[out, optional] PDWORD RequiredPropertyKeyCount,
[in] DWORD Flags,
[in, optional] PCWSTR MachineName,
PVOID Reserved
);
매개 변수
[in] ClassGuid
디바이스 설정 클래스 또는 디바이스 인터페이스 클래스를 나타내는 GUID에 대한 포인터입니다. SetupDiGetClassPropertyKeysEx 는 지정된 클래스에 대해 설정된 디바이스 속성을 나타내는 디바이스 속성 키의 배열을 검색합니다. 클래스 형식을 지정하는 방법에 대한 자세한 내용은 Flags 매개 변수를 참조하세요.
[out, optional] PropertyKeyArray
DEVPROPKEY 형식 값 배열을 수신하는 버퍼에 대한 포인터입니다. 여기서 각 값은 디바이스 설정 클래스에 대해 설정된 디바이스 속성을 나타내는 디바이스 속성 키입니다. 포인터는 선택 사항이며 NULL일 수 있습니다. 자세한 내용은 이 항목의 뒷부 분에 있는 설명 섹션을 참조하세요.
[in] PropertyKeyCount
PropertyKeyArray 버퍼의 크기(DEVPROPKEY 형식 값)입니다. PropertyKeyArray가 NULL로 설정된 경우 PropertyKeyCount를 0으로 설정해야 합니다.
[out, optional] RequiredPropertyKeyCount
요청된 속성 키 수를 수신하는 DWORD 형식 변수에 대한 포인터입니다. 포인터는 선택 사항이며 NULL로 설정할 수 있습니다.
[in] Flags
디바이스 설정 클래스 또는 디바이스 인터페이스 클래스에 대한 클래스 속성 키를 검색할지 여부를 지정하는 다음 값 중 하나입니다.
DICLASSPROP_INSTALLER
ClassGuid 는 디바이스 설정 클래스를 지정합니다. 이 플래그는 DICLASSPROP_INTERFACE 사용할 수 없습니다.
DICLASSPROP_INTERFACE
ClassGuid 는 디바이스 인터페이스 클래스를 지정합니다. 이 플래그는 DICLASSPROP_INSTALLER 사용할 수 없습니다.
[in, optional] MachineName
컴퓨터의 "\" 접두사를 포함하여 UNC 이름을 포함하는 NULL로 끝나는 문자열에 대한 포인터입니다. 포인터는 NULL일 수 있습니다. 포인터가 NULL이면 SetupDiGetClassPropertyKeysEx 는 로컬 컴퓨터에서 요청된 정보를 검색합니다.
주의
이 기능이 제거되었으므로 이 함수를 사용하여 원격 머신에 액세스하는 것은 Windows 8 및 Windows Server 2012 시작되지 않습니다.
Reserved
이 매개 변수는 NULL로 설정해야 합니다.
반환 값
SetupDiGetClassPropertyKeysEx 는 성공하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE를 반환하고 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.
다음 표에는 이 함수가 기록할 수 있는 몇 가지 일반적인 오류 코드가 포함되어 있습니다.
반환 코드 | 설명 |
---|---|
|
Flags 값이 잘못되었습니다. |
|
DICLASSPROP_INSTALLER 플래그를 지정하면 이 오류 코드는 ClassGuid 에 지정된 디바이스 설정 클래스가 없음을 나타냅니다. |
|
ClassGuild로 지정된 디바이스 인터페이스에 대한 참조 문자열이 잘못되었습니다. 이 오류는 DICLASSPROP_INTERFACE 플래그를 지정하면 반환될 수 있습니다. |
|
지정되지 않은 데이터 값이 잘못되었습니다. 한 가지 가능성은 ClassGuid 값이 잘못되었다는 것입니다. |
|
지정되지 않은 매개 변수가 잘못되었습니다. |
|
사용자 버퍼가 잘못되었습니다. 한 가지 가능성은 PropertyKeyArray 가 NULL이고 PropertKeyCount 가 0이 아니라는 것입니다. |
|
MachineName으로 지정된 컴퓨터 이름이 잘못되었습니다. |
|
DICLASSPROP_INTERFACE 플래그를 지정하는 경우 이 오류 코드는 ClassGuid 에 지정된 디바이스 인터페이스 클래스가 없음을 나타냅니다. |
|
PropertyKeyArray 버퍼가 모든 속성 키를 보유할 만큼 크지 않거나 시스템 호출에 전달된 내부 데이터 버퍼가 너무 작습니다. |
|
작업을 완료하는 데 사용할 수 있는 시스템 메모리가 부족했습니다. |
|
호출자에게 관리자 권한이 없습니다. |
설명
SetupDiGetClassPropertyKeysEx 는 통합 디바이스 속성 모델의 일부입니다.
SetupDiGetClassPropertyKeysEx의 호출자는 디바이스 클래스에 대한 디바이스 속성 키를 검색하려면 Administrators 그룹의 구성원이어야 합니다.
PropertyKeyArray 버퍼가 요청된 모든 속성 키를 보유할 만큼 크지 않은 경우 SetupDiGetClassPropertyKeysEx는 속성 키를 검색하지 않고 ERROR_INSUFFICIENT_BUFFER 반환합니다. 호출자가 RequiredPropertyKeyCount 포인터를 제공한 경우 SetupDiGetClassPropertyKeysEx 는 *RequiredPropertyKeyCount 값을 PropertyKeyArray 버퍼의 DEVPROPKEY 형식 값으로 필요한 크기로 설정합니다.
원격 컴퓨터에서 디바이스 클래스 속성을 검색하려면 SetupDiGetClassPropertyEx를 호출하고 원격 컴퓨터에서 디바이스 클래스 속성을 설정하려면 SetupDiSetClassPropertyEx를 호출합니다.
로컬 컴퓨터에서 디바이스 설정 클래스 또는 디바이스 인터페이스 클래스에 대한 속성 키를 검색하려면 SetupDiGetClassPropertyKeys를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | DesktopFor universal, call CM_Get_Class_Property_Keys_Ex |
머리글 | setupapi.h(Setupapi.h 포함) |
라이브러리 | Setupapi.lib |