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


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

См. также

SetupDiBuildDriverInfoList