Функция 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.
В следующей таблице приведены некоторые из наиболее распространенных кодов ошибок, которые эта функция может записывать в журнал.
Код возврата | Описание |
---|---|
|
Значение Flags не равно нулю. |
|
Недопустимый набор сведений об устройстве, указанный в DevInfoSet . |
|
Указанный параметр недопустим. Один из возможных вариантов заключается в том, что элемент сведений об устройстве является недопустимым. |
|
Недопустимое значение внутренних данных. |
|
Недопустимый буфер пользователя. Один из возможных вариантов заключается в том, что PropertyKeyArray имеет значение NULL , а PropertKeyCount не равно нулю. |
|
Экземпляр устройства, указанный в DevInfoData , не существует. |
|
Буфер PropertyKeyArray слишком мал для хранения всех запрошенных ключей свойств. |
|
Недостаточно системной памяти для завершения операции. |
Комментарии
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 |