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 之前,cbSize 为 sizeof ( 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 |