找了些如何获取光驱信息的帖子

1

IDE0:  
如果是主设备device=0xA0
如果是从设备device=0xB0
向端口0x1F1~0x1F7分别送(0,0,0,0,0x2,device,0xA1)       //Packet   IDentifyDevice

然后从0x1F0连续读出256个字,就是下面这个数据结构,其中的ModelNum就有想要的信息。

如果是从设备使用0x170~0x177

对了,如果是硬盘,上面就是(0,0,0,0,0,device,0xEC),呵呵,这个也是windows下
DeviceIOControl的来历吧。

在Dos,Linux,windows下都可以,不过端口权限要自己取,呵呵。

2.

可以使用ASPI功能来取。
基本原理就是调用ASPI(wnaspi32.dll)功能的sendaspi32command函数,执行一个SC_EXEC_SCSI_CMD
命令,返回的数据缓冲区(要调用者提供)中的36~55字节(0基准的)就是序列号(不足的部分填充为0)。

你可能感兴趣的:(找了些如何获取光驱信息的帖子)