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

Функция SetupDiEnumDeviceInterfaces перечисляет интерфейсы устройств, содержащиеся в наборе сведений об устройстве.

Синтаксис

WINSETUPAPI BOOL SetupDiEnumDeviceInterfaces(
  [in]           HDEVINFO                  DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA          DeviceInfoData,
  [in]           const GUID                *InterfaceClassGuid,
  [in]           DWORD                     MemberIndex,
  [out]          PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Параметры

[in] DeviceInfoSet

Указатель на набор сведений об устройстве , содержащий интерфейсы устройства, для которых возвращаются сведения. Этот дескриптор обычно возвращается SetupDiGetClassDevs.

[in, optional] DeviceInfoData

Указатель на структуру SP_DEVINFO_DATA , указывающую элемент сведений об устройстве в DeviceInfoSet. Этот параметр является необязательным и может иметь значение NULL. Если указан этот параметр, SetupDiEnumDeviceInterfaces ограничивает перечисление интерфейсами, поддерживаемыми указанным устройством. Если этот параметр имеет значение NULL, повторяющиеся вызовы SetupDiEnumDeviceInterfaces возвращают сведения об интерфейсах, связанных со всеми элементами сведений об устройстве в DeviceInfoSet. Этот указатель обычно возвращается программой SetupDiEnumDeviceInfo.

[in] InterfaceClassGuid

Указатель на GUID, указывающий класс интерфейса устройства для запрошенного интерфейса.

[in] MemberIndex

Отсчитываемый от нуля индекс в списке интерфейсов в наборе сведений об устройстве. Вызывающий объект должен сначала вызвать эту функцию с параметром MemberIndex , равным нулю, чтобы получить первый интерфейс. Затем многократно увеличиваете MemberIndex и извлекаете интерфейс, пока эта функция не завершается ошибкой и GetLastError не вернет ERROR_NO_MORE_ITEMS.

Если DeviceInfoData указывает определенное устройство, параметр MemberIndex относится только к интерфейсам, предоставляемым этим устройством.

[out] DeviceInterfaceData

Указатель на буфер, выделенный вызывающим объектом, который содержит завершенную структуру SP_DEVICE_INTERFACE_DATA , которая при успешном возвращении идентифицирует интерфейс, соответствующий параметрам поиска. Вызывающий объект должен задать DeviceInterfaceData. cbSize для sizeof(SP_DEVICE_INTERFACE_DATA) перед вызовом этой функции.

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

SetupDiEnumDeviceInterfaces возвращает значение TRUE , если функция завершена без ошибок. Если функция завершилась ошибкой, возвращается значение FALSE , а код ошибки для сбоя можно получить, вызвав Метод GetLastError.

Комментарии

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

DeviceInterfaceData указывает на структуру, которая идентифицирует запрошенный интерфейс устройства. Чтобы получить подробные сведения об интерфейсе, вызовите SetupDiGetDeviceInterfaceDetail. Подробные сведения включают имя интерфейса устройства, которое можно передать в функцию Win32, например CreateFile (описано в Microsoft Windows SDK документации), чтобы получить дескриптор интерфейса.

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

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib
DLL Setupapi.dll
Набор API ext-ms-win-setupapi-classinstallers-l1-1-2 (появилось в Windows 10 версии 10.0.14393)

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

SetupDiEnumDeviceInfo

SetupDiGetClassDevs

SetupDiGetDeviceInterfaceDetail