1. 根据设备类型获得设备类的GUID
对VC来说, 这些GUID定义在DEVGUID.H文件中. 假设是一个端口类设备, 则GUID为DEFINE_GUID( GUID_DEVCLASS_PORTS, 0x4d36e978L, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 );
2. 根据GUID得到设备类信息句柄
Windows DDK, SetupDiGetClassDevs, 返回一个HDEVINFO类型句柄, 可通过它枚举该设备类下所有设备.
3. 根据设备类信息句柄依次枚举这个设备类下的所有设备的设备信息
Windows DDK, SetupDiEnumDeviceInfo, 输出一个SP_DEVINFO_DATA结构体指针, 这个结构体包含了设备的GUID, 设备实例(Device Instance)等信息.
4. 获得当前设备的属性
Windows DDK, SetupDiGetDeviceRegistryProperty, retrieves the specified Plug and Play device property. 得到一个特定的即插即用设备的属性. 可以传入参数, 以得到不同类型的属性. 通常需要连续调用两次, 每一次根据需要的属性类型, 得到传出属性所需内存大小, 第二次传出所需属性.