Функция SetupDiGetClassPropertyKeys (setupapi.h)
Функция SetupDiGetClassPropertyKeys извлекает массив ключей свойств устройства, представляющих свойства устройства, заданные для класса настройки устройства или класса интерфейса устройства.
Синтаксис
WINSETUPAPI BOOL SetupDiGetClassPropertyKeys(
[in] const GUID *ClassGuid,
[out, optional] DEVPROPKEY *PropertyKeyArray,
[in] DWORD PropertyKeyCount,
[out, optional] PDWORD RequiredPropertyKeyCount,
[in] DWORD Flags
);
Параметры
[in] ClassGuid
Указатель на GUID, представляющий класс настройки устройства или класс интерфейса устройства. SetupDiGetClassPropertyKeys извлекает массив ключей свойств устройства, представляющих свойства устройства, заданные для указанного класса. Сведения об указании типа класса см. в параметре Flags .
[out, optional] PropertyKeyArray
Указатель на буфер, который получает массив значений типа DEVPROPKEY, где каждое значение является ключом свойства устройства, представляющим свойство устройства, заданное для класса устройства. Указатель является необязательным и может иметь значение NULL. Дополнительные сведения см. в разделе Примечания далее в этом разделе.
[in] PropertyKeyCount
Размер буфера PropertyKeyArray в типизированных значениях DEVPROPKEY. Если свойство PropertyKeyArray имеет значение NULL, свойство PropertyKeyCount должно быть равно нулю.
[out, optional] RequiredPropertyKeyCount
Указатель на переменную типа DWORD, которая получает количество запрошенных ключей свойств. Параметр является необязательным и может иметь значение NULL.
[in] Flags
Одно из следующих значений, указывающее, следует ли извлекать ключи свойств для класса настройки устройства или для класса интерфейса устройства:
DICLASSPROP_INSTALLER
ClassGuid указывает класс настройки устройства. Этот флаг нельзя использовать с DICLASSPROP_INTERFACE.
DICLASSPROP_INTERFACE
ClassGuid указывает класс интерфейса устройства. Этот флаг нельзя использовать с DICLASSPROP_INSTALLER.
Возвращаемое значение
При успешном выполнении setupDiGetClassPropertyKeys возвращает значение TRUE . В противном случае возвращается значение FALSE, и зарегистрированную ошибку можно получить, вызвав Метод GetLastError.
В следующей таблице приведены некоторые из наиболее распространенных кодов ошибок, которые эта функция может записывать в журнал.
Код возврата | Описание |
---|---|
|
Недопустимое значение Flags . |
|
Если указан флаг DICLASSPROP_INSTALLER, этот код ошибки указывает на то, что класс настройки устройства, указанный в ClassGuid , не существует. |
|
Недопустимая строка для интерфейса устройства, указанного в ClassGuild . Эта ошибка может быть возвращена, если указан флаг DICLASSPROP_INTERFACE. |
|
Недопустимое значение неустановленных данных. Одним из возможных вариантов является недопустимое значение ClassGuid . |
|
Недопустимый неуказаемый параметр. |
|
Недопустимый буфер пользователя. Один из возможных вариантов заключается в том, что PropertyKeyArray имеет значение NULL, а PropertKeyCount не равно нулю. |
|
Если указан флаг DICLASSPROP_INTERFACE, этот код ошибки указывает, что класс интерфейса устройства, указанный в ClassGuid , не существует. |
|
Буфер PropertyKeyArray недостаточно велик для хранения всех ключей свойств или внутренний буфер данных, переданный в системный вызов, был слишком мал. |
|
Недостаточно системной памяти для завершения операции. |
|
Вызывающий объект не имеет прав администратора. |
Комментарии
SetupDiGetClassPropertyKeys является частью единой модели свойств устройства.
Вызывающий объект SetupDiGetClassPropertyKeys должен быть членом группы Администраторы для получения ключей свойств устройства для класса устройства.
Если буфер PropertyKeyArray недостаточно велик для хранения всех запрошенных ключей свойств, setupDiGetClassPropertyKeys не извлекает ключи свойств и возвращает ERROR_INSUFFICIENT_BUFFER. Если вызывающий объект предоставил указатель RequiredPropertyKeyCount , SetupDiGetClassPropertyKeys устанавливает для значения *RequiredPropertyKeyCount требуемый размер буфера PropertyKeyArray в типизированных значениях DEVPROPKEY.
Чтобы получить свойство класса устройства на локальном компьютере, вызовите SetupDiGetClassProperty. Чтобы задать свойство класса устройства на локальном компьютере, вызовите SetupDiSetClassProperty.
Чтобы получить ключи свойств для класса настройки устройства или класса интерфейса устройства на удаленном компьютере, вызовите метод SetupDiGetClassPropertyKeysEx.
Требования
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях Windows. |
Целевая платформа | DesktopДля универсального, вызовите CM_Get_Class_Property_Keys |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |
DLL | Setupapi.dll |