Функция SetupDiEnumDriverInfoA (setupapi.h)
Функция SetupDiEnumDriverInfo перечисляет элементы списка драйверов.
Синтаксис
WINSETUPAPI BOOL SetupDiEnumDriverInfoA(
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData,
[in] DWORD DriverType,
[in] DWORD MemberIndex,
[out] PSP_DRVINFO_DATA_A DriverInfoData
);
Параметры
[in] DeviceInfoSet
Дескриптор набора сведений об устройстве , который содержит список драйверов для перечисления.
[in, optional] DeviceInfoData
Указатель на структуру SP_DEVINFO_DATA, указывающую элемент сведений об устройстве в DeviceInfoSet. Этот параметр является необязательным и может быть null. Если этот параметр указан, SetupDiEnumDriverInfo перечисляет список драйверов для указанного устройства. Если этот параметр NULL, SetupDiEnumDriverInfo перечисляет список драйверов глобального класса, связанный с DeviceInfoSet (этот список имеет тип SPDIT_CLASSDRIVER).
[in] DriverType
Тип списка драйверов для перечисления, который должен быть одним из следующих значений:
SPDIT_CLASSDRIVER
Перечисление списка драйверов классов. Этот тип списка драйверов должен быть указан, если DeviceInfoData не указан.
SPDIT_COMPATDRIVER
Перечислите список совместимых драйверов для указанного устройства. Этот тип списка драйверов можно указать, только если DeviceInfoData также указан.
[in] MemberIndex
Отсчитываемый от нуля индекс элемента сведений о драйвере.
[out] DriverInfoData
Указатель на инициализированную вызывающим SP_DRVINFO_DATA структуру, которая получает сведения о перечисленном драйвере. Вызывающий объект должен задать DriverInfoData.cbSizesizeof(SP_DRVINFO_DATA) перед вызовом SetupDiEnumDriverInfo. Если элемент cbSize неправильно задан, SetupDiEnumDriverInfo вернет FALSE.
Возвращаемое значение
Функция возвращает TRUE, если она выполнена успешно. В противном случае возвращается FALSE, а ошибка журнала может быть получена с помощью вызова GetLastError.
Замечания
Чтобы перечислить элементы набора сведений о драйвере, установщик должен сначала вызвать SetupDiEnumDriverInfo с параметром MemberIndex значение 0. Затем он должен увеличивать MemberIndex и вызывать SetupDiEnumDriverInfo, пока не будет больше значений. Если нет дополнительных значений, функция завершается ошибкой и вызовом GetLastError возвращается ERROR_NO_MORE_ITEMS.
Если вы не правильно инициализируете cbSize элемент структуры SP_DRVINFO_DATA, предоставленной указателем DriverInfoData, функция завершится ошибкой и зайдите в журнал ERROR_INVALID_USER_BUFFER.
Чтобы создать список драйверов, связанных с определенным устройством или списком драйверов глобального класса для набора сведений об устройстве, сначала используйте SetupDiBuildrInfoList затем передайте этот список в SetupDiEnumDriverInfo.
Заметка
Заголовок setupapi.h определяет SetupDiEnumDriverInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Microsoft Windows 2000 и более поздних версиях Windows. |
целевая платформа | Настольный |
заголовка | setupapi.h (include Setupapi.h) |
библиотеки |
Setupapi.lib |