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 枚举指定设备的驱动程序列表。 如果此参数 NULLSetupDiEnumDriverInfo 枚举与 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来检索记录的错误。

言论

若要枚举驱动程序信息集成员,安装程序应首先调用 setupDiEnumDriverInfo,并将 MemberIndex 参数设置为 0。 然后,它应递增 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)
Setupapi.lib

另请参阅

SetupDiBuildDriverInfoList