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来检索记录的错误。
言论
若要枚举驱动程序信息集成员,安装程序应首先调用 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 |