首页
社区
课程
招聘
[求助] 不显示删除回复显示所有回复显示星级回复显示得分回复 如何模仿Everest获取详细硬件信息,如光驱序列号、光驱缓存大小
发表于: 2010-4-28 10:14 3773

[求助] 不显示删除回复显示所有回复显示星级回复显示得分回复 如何模仿Everest获取详细硬件信息,如光驱序列号、光驱缓存大小

2010-4-28 10:14
3773
这个主题与安全关系少了些,但希望大家能给点 建议。

目前我只是想知道如何获取光驱序列号(硬件生产厂商分配的,不可改变的)和缓存大小,

同时对Everest的获取如此详细信息的能力很佩服,不知Everest是通过什么方法获取的。

如图:



我用了很多方法都没有获得到,实在是不知道该怎么做了,希望各位给些建议。

下面是我用的方法:

1、GetVolumeInformation 网上很多人都说用这个函数,但这个函数只能在光驱中有光盘的时候有返回值,而我想在没有光驱的时候也获得,就像Everest一样。

2、WMI的Win32_CDROMDrive,但这里的序列号成员只能在vista版本以上的系统使用,我想在至少xp系统上获得,同样就像Everest一样。
如:
SerialNumber  
Data type: uint16
Access type: Read-only  

Number supplied by the manufacturer that identifies the physical media. Example: WD-WM3493798728.

Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.0, and Windows Me/98/95: This property is not available.

3、WMI的Win32_PhysicalMedia,不知道为什么我获取到的序列号总是为空,不知道为什么获取SerialNumber获取不到。而且很多其他成员也都是获取不到。

4、DeviceIoControl发送IOCTL_CDROM_GET_CONFIGURATION 控制码,或许是我不会用,总是返回失败,错误信息,为参数不对。网上说是调用两次,第一次获取outputbuffer的大小,但我不知道为什么获取不到,也就是DeviceIoControl的倒数第二个参数总为0;
这个控制码是我安装了WDK之后才存在定义的,难道这个控制码只能在驱动中使用?(注:我对驱动开发还不了解)

5、DeviceIoControl发送IOCTL_CDROM_READ_TOC_EX 。
这个我也是没有获得成功。

写出上面几点,我只是想说,我想办法去获取了,但最终没有获取到。。

希望大家给些提示,如果您能测试下能否获取到,那更加感谢。

(非常抱歉,标题这么乱)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//