硬盘的序列号只能采用对硬盘控制器直接操作的方式进行读取,也就是说只能采用 CPU的I/O指令操作硬盘控制器,读取的方法如下面的C语言程序所示:
static int WaitIde()
{
int al;
while ((al=inp(0x1F7)) >=0x80) ;
return al;
}
static void ReadIDE()
{
int al;
int i;
WORD pw[256];
WaitIde();
outp(0x1F6,0xA0);
al = WaitIde();
if ((al&0x50)!=0x50)
return;
outp(0x1F6,0xA0);
outp(0x1F7,0xEC);
al = WaitIde();
if ((al&0x58)!=0x58)
return;
for (i=0;i< 256;i++)
pw[i] = inpw(0x1F0);
}
张志强
2007-05-03
没有评论:
发表评论