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


Функция 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.cbSize до sizeof(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.

Чтобы создать список драйверов, связанных с определенным устройством или глобальным списком драйверов класса для набора сведений об устройствах, сначала используйте SetupDiBuildDriverInfoList , а затем передайте этот список в SetupDiEnumDriverInfo.

Примечание

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

Требования

   
Минимальная версия клиента Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib

См. также раздел

SetupDiBuildDriverInfoList