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

Функция SetupDiGetDeviceInterfaceProperty извлекает свойство устройства, заданное для интерфейса устройства.

Синтаксис

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyW(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]            const DEVPROPKEY          *PropertyKey,
  [out]           DEVPROPTYPE               *PropertyType,
  [out]           PBYTE                     PropertyBuffer,
  [in]            DWORD                     PropertyBufferSize,
  [out, optional] PDWORD                    RequiredSize,
  [in]            DWORD                     Flags
);

Параметры

[in] DeviceInfoSet

Дескриптор набора сведений об устройстве , который содержит интерфейс устройства, для которого извлекается свойство интерфейса устройства.

[in] DeviceInterfaceData

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

[in] PropertyKey

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

[out] PropertyType

Указатель на переменную типа DEVPROPTYPE, которая получает идентификатор типа property-data-type запрошенного свойства интерфейса устройства. Идентификатор типа property-data-type представляет собой побитовое или между идентификатором базового типа данных и модификатором property-data-type, если изменяется базовый тип данных.

[out] PropertyBuffer

Указатель на буфер, который получает запрошенное свойство интерфейса устройства. SetupDiGetDeviceInterfaceProperty извлекает запрошенное свойство, только если буфер достаточно велик для хранения всех данных значения свойства. Указатель может иметь значение NULL. Если для указателя задано значение NULL и указан параметр RequiredSize , setupDiGetDeviceInterfaceProperty возвращает размер свойства в байтах в *RequiredSize.

[in] PropertyBufferSize

Размер буфера PropertyBuffer в байтах. Если свойство PropertyBuffer имеет значение NULL, свойство PropertyBufferSize должно иметь нулевое значение.

[out, optional] RequiredSize

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

[in] Flags

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

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

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

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

Код возврата Описание
ERROR_INVALID_FLAGS
Значение Flags не равно нулю.
ERROR_INVALID_HANDLE
Недопустимый набор сведений об устройстве, указанный в DevInfoSet .
ERROR_INVALID_PARAMETER
Указанный параметр недопустим. Один из возможных вариантов заключается в том, что интерфейс устройства, указанный в DeviceInterfaceData , недопустим.
ERROR_INVALID_REG_PROPERTY
Ключ свойства, предоставленный PropertyKey , недопустим.
ERROR_INVALID_DATA
Неопределенное значение внутренних данных было недопустимым.
ERROR_INVALID_USER_BUFFER
Недопустимый буфер пользователя. Один из возможных вариантов заключается в том, что СвойствоBuffer имеет значение NULL, а PropertyBufferSize не равно нулю.
ERROR_NO_SUCH_DEVICE_INTERFACE
Интерфейс устройства, указанный в DeviceInterfaceData , не существует.
ERROR_INSUFFICIENT_BUFFER
Буфер PropertyBuffer недостаточно велик для хранения значения свойства или внутренний буфер данных, переданный в системный вызов, был слишком мал.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно системной памяти для завершения операции.
ERROR_NOT_FOUND
Запрошенное свойство устройства не существует.
ERROR_ACCESS_DENIED
Вызывающий объект не имеет прав администратора.

Комментарии

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

SetupAPI поддерживает только версию Юникода SetupDiGetDeviceInterfaceProperty.

Вызывающий объект SetupDiGetDeviceInterfaceProperty должен быть членом группы Администраторы, чтобы задать свойство интерфейса устройства.

Чтобы получить ключи свойств устройства, которые представляют свойства устройства, заданные для интерфейса устройства, вызовите SetupDiGetDeviceInterfacePropertyKeys.

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

Требования

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

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

SetupDiGetDeviceInterfacePropertyKeys

SetupDiSetDeviceInterfaceProperty