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


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

Функция setupDiCreateDeviceInterface регистрирует интерфейс устройства в локальной системе или удаленной системе.

Синтаксис

WINSETUPAPI BOOL SetupDiCreateDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA          DeviceInfoData,
  [in]            const GUID                *InterfaceClassGuid,
  [in, optional]  PCSTR                     ReferenceString,
  [in]            DWORD                     CreationFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Параметры

[in] DeviceInfoSet

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

[in] DeviceInfoData

Указатель на структуру SP_DEVINFO_DATA, указывающую элемент сведений об устройстве в DeviceInfoSet.

[in] InterfaceClassGuid

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

[in, optional] ReferenceString

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

[in] CreationFlags

Скрытный. Должно быть равно нулю.

[out, optional] DeviceInterfaceData

Указатель на инициализированную вызывающим SP_DEVICE_INTERFACE_DATA структуру для получения сведений о новом интерфейсе устройства. Этот указатель необязателен и может быть null. Если указана структура, вызывающий объект должен задать cbSize член этой структуры для sizeof(SP_DEVICE_INTERFACE_DATA) перед вызовом этой функции. Дополнительные сведения см. в следующем разделе Примечания.

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

SetupDiCreateDeviceInterface возвращает TRUE, если функция завершена без ошибок. Если функция завершилась ошибкой, она возвращает FALSE и код ошибки для сбоя можно получить путем вызова GetLastError.

Замечания

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

SetupDiCreateDeviceInterface регистрирует интерфейс для устройства. Если устройство имеет несколько интерфейсов, вызовите эту функцию один раз для каждого зарегистрированного интерфейса.

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

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

Эта функция создает раздел реестра для нового интерфейса устройства. Вызывающие функции могут получить доступ к ненулевому хранилищу под этим ключом с помощью SetupDiOpenDeviceInterfaceRegKey.

Если SetupDiCreateDeviceInterface успешно создает новый интерфейс устройства, но вызывающий буфер в параметре DeviceInterfaceData недействителен, эта функция вернет FALSE и последующий вызов GetLastError вернет ERROR_INVALID_USER_BUFFER. Однако функция создает и регистрирует новый интерфейс устройства.

Заметка

Заголовок setupapi.h определяет SetupDiCreateDeviceInterface как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
целевая платформа Настольный
заголовка setupapi.h (include Setupapi.h)
библиотеки Setupapi.lib

См. также

SetupDiOpenDeviceInterfaceRegKey

SetupDiRemoveDeviceInterface