SetupAPI简介与设备管理
SetupAPI的定位
SetupAPI是一个被用来执行安装设备的一系列操作的方法的集合,主要用于安装设备驱动(device driver),被用在类安装程序(class installers)、协安装程序(co-installers)和设备安装应用程序(device installation applications)中。
下图描绘了设备安装过程中的组件,也包括SetupAPI在其中所扮演的角色
SetupAPI Functions Set
SetupAPI的方法集分为两大部分:
General setup functions
- 读取和处理INF文件
- 确定安装在目标系统上所需的可用空间大小
- 将文件从源介质移至所安装的目标系统的介质上,如果需要的话要求用户介入
- 创建在安装期间移动的文件的日志
- 将日志条目写入SetupAPI text logs
Device installation functions
- 安装驱动
- 处理DIF代码
- 管理设备信息集
- 管理驱动列表
- 管理设备接口
- 管理图标以及其它的位图
SetupAPI与枚举设备
从上一节中可见SetupAPI的方法集中有专门的一部分用以管理设备信息集。那么接下来,首先要做的就是最简单的功能——枚举设备信息。I
在SetupAPI中利用设备信息集(Device Information Sets)这样一种结构来组织各个设备的信息
当需要获取一个或多个设备的描述信息时,必须先创建一个设备信息集,然后通过枚举列表中元素的方式获取设备信息元素(Device Information Element),进而获得所需的设备信息。
/*************************************
* BOOL EnumAllDevice( )
* 功能 列举当前存在的设备
* 返回值 是否成功
**************************************/
BOOL E