Escribir el programa para hacer la reserva de MBR:
/* Programa para hacer la reserva de MBR */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo; /* Estructura para llevar a cabo la información de los parámetros del disco */
int result;
int count=0;
char filename[80]; /* Almacena el nombre del archivo dado por User */
static char dbuf[512]; /* Almacenador intermediario de los datos de 512 octetos */
FILE *fp;
dinfo.drive = 0x80; /* número de impulsión para el primer disco duro */
dinfo.head = 0; /* número principal del disco */
dinfo.track = 0; /* número de la pista */
dinfo.sector = 1; /* número del sector */
dinfo.nsectors = 1; /* cuenta de sector*/
dinfo.buffer = dbuf; /* almacenador intermediario de los datos */
printf("\n Enter The Filename and path to store the
Backup of MBR \n ");
gets(filename);
// Abrir el archivo para almacenar la reserva de MBR \\
if((fp=fopen(filename,"wb"))==NULL)
{
printf("Could not Create File, Press any key to
Exit...");
getch();
exit(0);
}
printf("Attempting to read from Hard disk drive :\n");
//// Leer el sector especificado del disco \\\\
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
printf("Disk read from hard disk drive :
successful.\n");
/// Escribir 512 octetos de MBR al archivo \\\\
while(count<512)
{
fprintf(fp,"%c",dbuf[count] & 0xff );
count++;
}
fclose(fp);
}
else
printf("Cannot read Hard Disk drive, status = 0x%02x\n", result);
return 0;
}
|