Функция SetupDiSetClassPropertyW (setupapi.h)
Функция SetupDiSetClassProperty задает свойство класса для класса установки устройства или класса интерфейса устройства.
Синтаксис
WINSETUPAPI BOOL SetupDiSetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, optional] const PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[in] DWORD Flags
);
Параметры
[in] ClassGuid
Указатель на GUID, который идентифицирует класс настройки устройства или класс интерфейса устройства, для которого нужно задать свойство устройства. Сведения о том, как указать тип класса, см. в параметре Flags .
[in] PropertyKey
Указатель на структуру DEVPROPKEY , представляющую ключ свойства устройства свойства класса устройства для задания.
[in] PropertyType
Значение типа DEVPROPTYPE, представляющее идентификатор типа property-data-type для свойства класса устройства. Дополнительные сведения об идентификаторе типа property-data-type см. в разделе Примечания далее в этом разделе.
[in, optional] PropertyBuffer
Указатель на буфер, содержащий значение свойства класса устройства. Если свойство или данные удаляются, для этого указателя необходимо задать значение NULL, а свойствоBufferSize — нулевое значение. Дополнительные сведения о данных свойств см. в разделе Примечания далее в этом разделе.
[in] PropertyBufferSize
Размер буфера PropertyBuffer (в байтах). Если свойство PropertyBuffer имеет значение NULL, свойство PropertyBufferSize должно быть равно нулю.
[in] Flags
Одно из следующих значений, которое указывает, является ли класс классом настройки устройства или классом интерфейса устройства:
DICLASSPROP_INSTALLER
ClassGuid указывает класс настройки устройства. Этот флаг нельзя использовать с DICLASSPROP_INTERFACE.
DICLASSPROP_INTERFACE
ClassGuid задает класс интерфейса устройства. Этот флаг нельзя использовать с DICLASSPROP_INSTALLER.
Возвращаемое значение
При успешном выполнении setupDiSetClassProperty возвращает значение TRUE . В противном случае возвращается значение FALSE, а зарегистрированную ошибку можно получить, вызвав Метод GetLastError.
В следующей таблице приведены некоторые из наиболее распространенных кодов ошибок, которые эта функция может записывать в журнал.
Код возврата | Описание |
---|---|
|
Недопустимое значение Flags . |
|
Недопустимый класс настройки устройства, указанный в ClassGuid . Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INSTALLER. |
|
Недопустимая строка ссылки на интерфейс устройства. Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INTERFACE. |
|
Недопустимый ключ свойства, предоставляемый PropertyKey . |
|
Неуказаемое внутреннее значение данных было недопустимым. Эта ошибка может быть зарегистрирована, если значение ClassGuid не является допустимым идентификатором GUID или значение свойства не соответствует типу свойства, заданному свойством PropertyType. |
|
Недопустимый буфер пользователя. Возможно, свойство PropertyBuffer имеет значение NULL, а PropertyBufferSize не равно нулю. |
|
Класс интерфейса устройства, заданный ClassGuid , не существует. Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INTERFACE. |
|
Внутренний буфер данных, переданный в системный вызов, был слишком мал. |
|
Недостаточно системной памяти для завершения операции. |
|
Неуказаемый элемент не найден. Одна из возможных ситуаций заключается в том, что удаляемое свойство не существует. |
|
Вызывающий объект не имеет прав администратора. |
Комментарии
SetupDiSetClassProperty является частью единой модели свойств устройства.
SetupAPI поддерживает только версию Юникода SetupDiSetClassProperty.
Вызывающий объект SetupDiSetClassProperty должен быть членом группы Администраторы, чтобы задать свойство интерфейса устройства.
SetupDiSetClassProperty применяет требования к идентификатору property-data-type и значению свойства.
Чтобы получить ключи свойств устройства, которые представляют свойства устройства, заданные для класса устройства на локальном компьютере, вызовите SetupDiGetClassPropertyKeys.
Чтобы получить свойство класса устройства на локальном компьютере, вызовите Метод SetupDiGetClassProperty, а чтобы получить свойство класса устройства на удаленном компьютере, вызовите Метод SetupDiGetClassPropertyEx.
Чтобы задать свойство класса устройства на удаленном компьютере, вызовите SetupDiSetClassPropertyEx.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях Windows. |
Целевая платформа | DesktopДля универсального вызова CM_Set_Class_Property |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |