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。在调用 SetupDiEnumDriverInfo 之前,cbSizesizeof ( SP_DRVINFO_DATA) 。 如果未正确设置 cbSize 成员, 则 SetupDiEnumDriverInfo 将返回 FALSE

返回值

如果成功,该函数将返回 TRUE 。 否则,它将返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。

备注

若要枚举驱动程序信息集成员,安装程序应首先调用 MemberIndex 参数设置为 0 的 SetupDiEnumDriverInfo。 然后,它应递增 MemberIndex 并调用 SetupDiEnumDriverInfo ,直到没有更多值。 如果没有更多值,函数将失败,并且对 GetLastError 的调用将返回ERROR_NO_MORE_ITEMS。

如果未正确初始化由指针 DriverInfoData 提供的 SP_DRVINFO_DATA 结构的 cbSize 成员,则函数将失败并记录ERROR_INVALID_USER_BUFFER错误。

若要生成与特定设备关联的驱动程序列表或与设备信息的全局类驱动程序列表集,请先使用 SetupDiBuildDriverInfoList ,然后将该列表传递给 SetupDiEnumDriverInfo

注意

setupapi.h 标头将 SetupDiEnumDriverInfo 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib

另请参阅

SetupDiBuildDriverInfoList