Cómo leer el número de serie del disco duro SN mediante programación
El número de serie del disco duro solo se puede leer operando directamente el controlador del disco duro, lo que significa que el controlador del disco duro solo se puede operar mediante
las instrucciones de E/S de la CPU El método de lectura se muestra en el siguiente programa en lenguaje C:
static int WaitIde()
{
int al;
.while ((al=inp(0x1F7)) gt;=0x80);
return al;
}
static void ReadIDE()
{
int al;
int i;
WORD pw[256];
WaitIde() ;
p>
outp(0x1F6, 0xA0);
al = WaitIde();
if ((alamp; 0x50)!=0x50 ) retorno;
outp(0x1F6, 0xA0);
outp(0x1F7, 0xEC);
al = WaitIde(); >if ((alamp; 0x58) !=0x58) return;
for (i=0; ilt; 256; i )
pw[i] = inpw(0x1F0);
}
---- El programa anterior en realidad lee toda la información almacenada en el controlador del disco duro, y el número de serie es solo una parte
, ubicado en el pw mencionado anteriormente [] Dentro de los 10 a 20 elementos de la matriz, es decir, dentro de las 10 PALABRAS que comienzan desde amp;pw[10], cada PALABRA ocupa dos bytes y *** ocupa 20 bytes. Dado que los bytes altos y bajos de cada PALABRA están en orden no Intel cuando se guarda el número de serie, es decir, su byte alto viene primero y el byte bajo viene después, por lo tanto, debe invertir los bytes alto y bajo. al usarlo. Esto le dará el número de serie completo.