请问大家,如何获得CF卡的序列号?
CF卡规范上讲CF卡用的是IED/ATA标准,但是我用下面这种方法得不CF卡的序列号,硬盘的问题:
static void ReadIDE()
{
int al;
int i;
WaitIde();
outp(0x1F6,0xA0); <=========主盘是0xA0,从盘是0xB0,
al = WaitIde();
if ((al&0x50)!=0x50) return;
outp(0x1F6,0xA0); <========= 但这里却不进行区分,直接使用0xA0
outp(0x1F7,0xEC); <========= 这个也有可能有问题
对于ATA设备,是0xEC,
但对于ATAPI设备,则为0xA1
al = WaitIde();
if ((al&0x58)!=0x58) return;
for (i=0;i<256;i++) {
pw[i] = inpw(0x1F0);
}
哪位老兄帮帮忙啊?