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


Функция 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.

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

Код возврата Описание
ERROR_INVALID_FLAGS
Недопустимое значение Flags .
ERROR_INVALID_CLASS
Недопустимый класс настройки устройства, указанный в ClassGuid . Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INSTALLER.
ERROR_INVALID_REFERENCE_STRING
Недопустимая строка ссылки на интерфейс устройства. Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INTERFACE.
ERROR_INVALID_REG_PROPERTY
Недопустимый ключ свойства, предоставляемый PropertyKey .
ERROR_INVALID_DATA
Неуказаемое внутреннее значение данных было недопустимым. Эта ошибка может быть зарегистрирована, если значение ClassGuid не является допустимым идентификатором GUID или значение свойства не соответствует типу свойства, заданному свойством PropertyType.
ERROR_INVALID_USER_BUFFER
Недопустимый буфер пользователя. Возможно, свойство PropertyBuffer имеет значение NULL, а PropertyBufferSize не равно нулю.
ERROR_NO_SUCH_INTERFACE_CLASS
Класс интерфейса устройства, заданный ClassGuid , не существует. Эта ошибка может возникнуть, только если указан флаг DICLASSPROP_INTERFACE.
ERROR_INSUFFICIENT_BUFFER
Внутренний буфер данных, переданный в системный вызов, был слишком мал.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно системной памяти для завершения операции.
ERROR_NOT_FOUND
Неуказаемый элемент не найден. Одна из возможных ситуаций заключается в том, что удаляемое свойство не существует.
ERROR_ACCESS_DENIED
Вызывающий объект не имеет прав администратора.

Комментарии

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

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

SetupDiGetClassProperty

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx