Programma per ristabilire il sostegno di MBR dalla lima di riserva:
La codificazione del programma è come segues:
/* Programma per ristabilire il sostegno di MBR dalla lima di riserva */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
int result;
int count=0;
char filename[80]; /* Immagazzina il nome di archivio dato da User */
static char dbuf[512]; /* Un amplificatore di dati di 512 byte
*/
FILE *fp;
/* Convincere l'utente ad immettere per il percorso della lima di riserva di MBR */
printf("\n Entrare nel nome di schedario e nel percorso della lima di riserva di MBR \n ");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Could not open Backup File, Press any key
to Exit...");
getch();
exit(1);
}
/* I dati di MBR dovrebbero essere dei 512 byte esatti */
while(count<512)
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
fclose(fp);
printf("Tentare di scrivere all'azionamento di disco rigido :\n");
dinfo.drive = 0x80; /* numero di azionamento per il primo disco rigido */
dinfo.head = 0; /* numero capo del disc */
dinfo.track = 0; /* numero della pista */
dinfo.sector = 1; /* numero del settore */
dinfo.nsectors = 1; /* conteggio di settore */
dinfo.buffer = dbuf; /* amplificatore di dati */
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{
printf("Restoring the Backup of MBR to The Disk
Sector: successful.\n");
}
else
printf("Cannot Write on Hard Disk drive, status =
0x%02x\n", result);
return 0;
}
|