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


Функция SetupDiGetDevicePropertyKeys (setupapi.h)

Функция SetupDiGetDevicePropertyKeys извлекает массив ключей свойств устройства, представляющих свойства устройства, заданные для экземпляра устройства.

Синтаксис

WINSETUPAPI BOOL SetupDiGetDevicePropertyKeys(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [out, optional] DEVPROPKEY       *PropertyKeyArray,
  [in]            DWORD            PropertyKeyCount,
  [out, optional] PDWORD           RequiredPropertyKeyCount,
  [in]            DWORD            Flags
);

Параметры

[in] DeviceInfoSet

Дескриптор набора сведений об устройстве. Этот набор сведений об устройстве содержит экземпляр устройства, для которого эта функция извлекает массив ключей свойств устройства. Ключи свойств представляют свойства устройства, заданные для экземпляра устройства.

[in] DeviceInfoData

Указатель на структуру SP_DEVINFO_DATA , представляющую экземпляр устройства, для которого требуется получить запрошенный массив ключей свойств устройства.

[out, optional] PropertyKeyArray

Указатель на буфер, который получает массив значений типа DEVPROPKEY, где каждое значение является ключом свойства устройства, представляющим свойство устройства, заданное для экземпляра устройства. Указатель является необязательным и может иметь значение NULL. Дополнительные сведения см. в разделе Примечания далее в этом разделе.

[in] PropertyKeyCount

Размер буфера PropertyKeyArray в типизированных значениях DEVPROPKEY. Если свойство PropertyKeyArray имеет значение NULL, свойство PropertyKeyCount должно быть равно нулю.

[out, optional] RequiredPropertyKeyCount

Указатель на переменную типа DWORD, которая получает количество запрошенных ключей свойств устройства. Указатель является необязательным и может иметь значение NULL.

[in] Flags

Для этого параметра необходимо задать нулевое значение.

Возвращаемое значение

SetupDiGetDevicePropertyKeys возвращает значение TRUE в случае успешного выполнения. В противном случае возвращается значение FALSE, и зарегистрированную ошибку можно получить, вызвав Метод GetLastError.

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

Код возврата Описание
ERROR_INVALID_FLAGS
Значение Flags не равно нулю.
ERROR_INVALID_HANDLE
Недопустимый набор сведений об устройстве, указанный в DevInfoSet .
ERROR_INVALID_PARAMETER
Указанный параметр недопустим. Один из возможных вариантов заключается в том, что элемент сведений об устройстве является недопустимым.
ERROR_INVALID_DATA
Недопустимое значение внутренних данных.
ERROR_INVALID_USER_BUFFER
Недопустимый буфер пользователя. Один из возможных вариантов заключается в том, что PropertyKeyArray имеет значение NULL , а PropertKeyCount не равно нулю.
ERROR_NO_SUCH_DEVINST
Экземпляр устройства, указанный в DevInfoData , не существует.
ERROR_INSUFFICIENT_BUFFER
Буфер PropertyKeyArray слишком мал для хранения всех запрошенных ключей свойств.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно системной памяти для завершения операции.

Комментарии

SetupDiGetDevicePropertyKeys является частью единой модели свойств устройства.

Если буфер ProperKeyArray недостаточно велик для хранения всех запрошенных ключей свойств, setupDiGetDevicePropertyKeys не получает ключи свойств и возвращает ERROR_INSUFFICIENT_BUFFER. Если вызывающий объект предоставил указатель RequiredPropertyKeyCount, SetupDiGetDevicePropertyKeys устанавливает для значения *RequiredPropertyKeyCount требуемый размер в типизированных значениях DEVPROPKEY буфера PropertyKeyArray.

Чтобы получить свойство экземпляра устройства, вызовите Метод SetupDiGetDeviceProperty, а чтобы задать свойство экземпляра устройства, вызовите Метод SetupDiSetDeviceProperty.

Требования

   
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях Windows.
Целевая платформа DesktopДля универсального, вызовите CM_Get_DevNode_Property_Keys
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib
DLL Setupapi.dll

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

SetupDiGetDeviceProperty

SetupDiSetDeviceProperty