Функция 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"). Если DeviceInstanceId имеет значение NULL или ссылается на строку нулевой длины, 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Microsoft Windows 2000 и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |