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


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

Функция SetupDiOpenDeviceInfo добавляет элемент сведений об устройстве для экземпляра устройства в набор сведений об устройстве, если он еще не существует в наборе сведений об устройстве и извлекает сведения, определяющие элемент сведений об устройстве для экземпляра устройства в наборе сведений об устройстве.

Синтаксис

WINSETUPAPI BOOL SetupDiOpenDeviceInfoA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PCSTR            DeviceInstanceId,
  [in, optional]  HWND             hwndParent,
  [in]            DWORD            OpenFlags,
  [out, optional] PSP_DEVINFO_DATA DeviceInfoData
);

Параметры

[in] DeviceInfoSet

Дескриптор набора сведений об устройстве , к которому SetupDiOpenDeviceInfo добавляет элемент сведений об устройстве, если он еще не существует, для экземпляра устройства, указанного DeviceInstanceId.

[in] DeviceInstanceId

Указатель на строку, завершающую значение NULL, которая предоставляет идентификатор экземпляра устройства (например, Root*PNP0500\0000). Если DeviceInstanceIdNULL или ссылается на строку нулевой длины, SetupDiOpenDeviceInfo добавляет элемент сведений об устройстве в предоставленный набор сведений об устройстве, если он еще не существует, для корневого устройства в дереве устройств.

[in, optional] hwndParent

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

[in] OpenFlags

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

DIOD_CANCEL_REMOVE

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

DIOD_INHERIT_CLASSDRVS

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

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

[out, optional] DeviceInfoData

Указатель на структуру, предоставляемую вызывающим SP_DEVINFO_DATA, которая получает сведения об элементе сведений об устройстве для экземпляра устройства, указанного DeviceInstanceId. Вызывающий объект должен задать cbSize значение sizeof(SP_DEVINFO_DATA). Этот параметр является необязательным и может быть null.

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

SetupDiOpenDeviceInfo возвращает TRUE в случае успешного выполнения. В противном случае функция возвращает FALSE и ошибку журнала можно получить с помощью вызова GetLastError.

Замечания

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

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

Заметка

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

Требования

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

См. также

SP_DEVINFO_DATA

SetupDiCreateDeviceInfo

SetupDiDeleteDeviceInfo

SetupDiEnumDeviceInfo