MBR ändern, indem Sie programmieren
Das Programmbeispiel zum darzustellen, wie wir die Werte der MBR Fach-Tabelle Eintragung ändern können, ist unten gegeben worden. Das Programm ändert die Facheintragung der Werte zweite der MBR Fachtabelle.
Die Kodierung des Programms ist unten gegeben worden:
/* Das Programm, zum der Werte des Faches zu ändern legen Eintragung von MBR ver*/
# include <bios.h>
/* Struktur, zum der Facheintragung von der Fachtabelle zu lesen */
struct partition
{
unsigned char bootable ; /* Aktives Fach-Byte */
unsigned char start_side ; /* Anstellen des Kopfes*/
unsigned int start_sec_cyl ; /* Kombination des Beginnens von Sektor- und Zylindernummer */
unsigned char parttype ; /* Dateisystem Indikatorbyte */
unsigned char end_side ; /* Ende-Kopf */
unsigned int end_sec_cyl ; /*Kombination des Beginnens von Sektor- und Zylindernummer */
unsigned long part_beg ; /*Relative Sektor-Zahl */
unsigned long plen ; /* Fachlänge in den Sektoren */
} ;
/* Struktur, zum von MBR zu lesen */
struct part
{
unsigned char master_boot[446] ; /*IPL (Initialprogrammlader)*/
struct partition pt[4] ; /* Fachtabelle*/
int lasttwo ; /* Magische Zahl */
} ;
struct part p ;
void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /*die Fach Tabelle Informationen anzeigen */
getch();
/* Uns, daß wir die Fachinformationen der zweiten Facheintragung von der Fachtabelle von MBR ändern möchten, mit diesen Werten annehmen lassen */
p.pt[1].bootable = 0x80; /* Aktives Aufladung Fach */
p.pt[1].parttype = 0x7; /*Beginnen des Haupt=0aNTFS Faches */
p.pt[1].start_side = 0; /* Beginnen von Haupt=0 */
p.pt[1].end_side = 31; /* Ende Haupt== 31 */
p.pt[1].part_beg = 808416;/*Relativer Sektor = 808416
*/
p.pt[1].plen = 405216; /* Gesamtsektoren im Fach = 405216 */
|