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 的指针,该 GUID 指定所请求接口的设备接口类。

[in] MemberIndex

设备信息集中接口列表中的从零开始的索引。 调用方应先调用此函数,并将 MemberIndex 设置为零,以获取第一个接口。 然后,重复递增 MemberIndex 并检索接口,直到此函数失败且 GetLastError 返回ERROR_NO_MORE_ITEMS。

如果 DeviceInfoData 指定特定设备,则 MemberIndex 仅相对于该设备公开的接口。

[out] DeviceInterfaceData

指向调用方分配的缓冲区的指针,该缓冲区在成功返回时包含一个标识满足搜索参数的接口的已完成 SP_DEVICE_INTERFACE_DATA 结构。 调用方必须设置 DeviceInterfaceData。在调用此函数之前,cbSizesizeof (SP_DEVICE_INTERFACE_DATA) 。

返回值

如果函数完成且未出错,SetupDiEnumDeviceInterfaces 将返回 TRUE。 如果函数完成但出现错误,则返回 FALSE ,并且可以通过调用 GetLastError 来检索失败的错误代码。

注解

重复调用此函数会返回不同设备接口 的SP_DEVICE_INTERFACE_DATA 结构。 可以重复调用此函数来获取与特定设备信息元素关联或与所有设备信息元素关联的设备信息集中的接口的相关信息。

DeviceInterfaceData 指向一个结构,该结构标识请求的设备接口。 若要获取有关接口的详细信息,请调用 SetupDiGetDeviceInterfaceDetail。 详细信息包括可传递给 Win32 函数的设备接口的名称,如Microsoft Windows SDK文档) 中所述的 CreateFile (以获取接口的句柄。

有关详细信息 ,请参阅设备接口类概述

要求

要求
最低受支持的客户端 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib
DLL Setupapi.dll
API 集 ext-ms-win-setupapi-classinstallers-l1-1-2 (在 Windows 10 版本 10.0.14393 中引入)

另请参阅

SetupDiEnumDeviceInfo

SetupDiGetClassDevs

SetupDiGetDeviceInterfaceDetail