Поделиться через


Функция 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.

В следующей таблице приведены некоторые из наиболее распространенных кодов ошибок, которые эта функция может записывать в журнал.

Код возврата Описание
ERROR_INVALID_FLAGS
Недопустимое значение Flags .
ERROR_INVALID_CLASS
Если указан флаг DICLASSPROP_INSTALLER, этот код ошибки указывает на то, что класс настройки устройства, указанный в ClassGuid , не существует.
ERROR_INVALID_REFERENCE_STRING
Недопустимая строка для интерфейса устройства, указанного в ClassGuild . Эта ошибка может быть возвращена, если указан флаг DICLASSPROP_INTERFACE.
ERROR_INVALID_DATA
Недопустимое значение неустановленных данных. Одним из возможных вариантов является недопустимое значение ClassGuid .
ERROR_INVALID_PARAMETER
Недопустимый неуказаемый параметр.
ERROR_INVALID_USER_BUFFER
Недопустимый буфер пользователя. Один из возможных вариантов заключается в том, что PropertyKeyArray имеет значение NULL, а PropertKeyCount не равно нулю.
ERROR_NO_SUCH_INTERFACE_CLASS
Если указан флаг DICLASSPROP_INTERFACE, этот код ошибки указывает, что класс интерфейса устройства, указанный в ClassGuid , не существует.
ERROR_INSUFFICENT_BUFFER
Буфер PropertyKeyArray недостаточно велик для хранения всех ключей свойств или внутренний буфер данных, переданный в системный вызов, был слишком мал.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно системной памяти для завершения операции.
ERROR_ACCESS_DENIED
Вызывающий объект не имеет прав администратора.

Комментарии

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

См. также раздел

SetupDiGetClassProperty

SetupDiGetClassPropertyKeysEx

SetupDiSetClassProperty