我通过SetUpDiXXX函数可以按照class枚举系统设备,可是有些设备是虚拟的,有些设备是板载集成的,有没有一种机制可以判断一个独立的物理设备,比如CPU、显卡、内存条等等。MSDN说 setup class是按照设备能力来分类的,不是按照device location(总线类型,接口类型)来分的。而且在我看来,这些都是针对驱动来分类的。光驱可以有虚拟的,不过仍然在 CDROM 类里面,(上面提到的 CPU、显卡、内存条 估计虚拟的几率不大……呵呵)谁能讲讲,如何区分 (插在主板上的,但不是板载的) 和 (通过USB等接口连接的) 设备呢?谢谢。
两种方式,PhysicalDrive方法和SCSI mini port方式。
就是 DeviceIoControl 发送ID命令。
\\.\\ScsiX
\\.\\PhysicalDriveX不过winioctl.h貌似只对disk、存储媒体等定义了很多的结构与宏
我看到一个 FILE_DEVICE_VIDEO ,却不知道该怎么用……是不是这种方式就不适用了?我如果要枚举PCI、PCI-E、AGP设备并把存在的设备的设备信息(型号信息,更过的没用啊~)获取到,该怎么办呢?
2. 通过XXX,获得通过IDE SATA 等插在主板上的 硬盘、光驱设备(这两样有几个算几个,都要获得,能够判断其厂商型号的数据信息即可,多余的细节指标用不到,用WMI,哎虚拟光驱、U盘加载的逻辑卷都算再内了……)
3. 通过YYY,获得主板厂商 和 型号 哪位高人指点一下,看哪些软、硬件资料、技术文档、权威网站……,能够解惑?谢谢。