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


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

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

Синтаксис

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyKeys(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [out, optional] DEVPROPKEY                *PropertyKeyArray,
  [in]            DWORD                     PropertyKeyCount,
  [out, optional] PDWORD                    RequiredPropertyKeyCount,
  [in]            DWORD                     Flags
);

Параметры

[in] DeviceInfoSet

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

[in] DeviceInterfaceData

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

[out, optional] PropertyKeyArray

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

[in] PropertyKeyCount

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

[out, optional] RequiredPropertyKeyCount

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

[in] Flags

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

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

Функция возвращает ЗНАЧЕНИЕ TRUE , если оно выполнено успешно. В противном случае возвращается значение FALSE, и зарегистрированную ошибку можно получить, вызвав Метод GetLastError.

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

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

Комментарии

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

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

Чтобы получить свойство интерфейса устройства, вызовите метод SetupDiGetDeviceInterfaceProperty, а чтобы задать свойство интерфейса устройства, вызовите метод SetupDiSetDeviceInterfaceProperty.

Требования

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

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

SetupDiGetDeviceInterfaceProperty

SetupDiSetDeviceInterfaceProperty