Modifier MBR par la programmation
Le programme d'échantillon à montrer, comment nous pouvons modifier les valeurs de l'entrée de table de cloison de MBR a été donné ci-dessous. Le programme modifie l'entrée de cloison de valeurs deuxièmes de la table de cloison de MBR.
Le codage du programme a été donné ci-dessous :
/*Le programme pour modifier les valeurs de la cloison ajournent l'entrée de MBR*/
# include <bios.h>
/* structure pour lire l'entrée de cloison de la table de cloison*/
struct partition
{
unsigned char bootable ; /* Byte actif de cloison */
unsigned char start_side ; /* Mise en marche de la tête*/
unsigned int start_sec_cyl ; /* combinaison de commencer le nombre de secteur et de cylindre */
unsigned char parttype ; /* Byte d'indicateur de système de fichiers*/
unsigned char end_side ; /* Tête de fin */
unsigned int end_sec_cyl ; /* combinaison de commencer le nombre de secteur et de cylindre */
unsigned long part_beg ; /* Nombre relatif de secteur */
unsigned long plen ; /*Longueur de cloison dans les secteurs*/
} ;
/*Structure pour lire MBR*/
struct part
{
unsigned char master_boot[446] ; /* Chargement initial (chargeur de programme initial)*/
struct partition pt[4] ; /* Table de cloison*/
int lasttwo ; /*Nombre magique */
} ;
struct part p ;
void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /*montrer l'information de Tableau de cloison */
getch();
/* Supposons que nous voulons modifier l'information de cloison de la deuxième entrée de cloison de la table de cloison de MBR, avec ces valeurs */
p.pt[1].bootable = 0x80; /* Cloison active d'initialisation */
p.pt[1].parttype = 0x7; /* Cloison de NTFS */
p.pt[1].start_side = 0; /* Commencer =0 principal */
p.pt[1].end_side = 31; /* == principal 31 de fin */
p.pt[1].part_beg = 808416;/* Secteur relatif = 808416
*/
p.pt[1].plen = 405216; /* Secteurs totaux dans la cloison = 405216 */
|