Τροποποιήστε MBR με τον προγραμματισμό
Το πρόγραμμα δειγμάτων για να παρουσιάσει, πώς μπορούμε να τροποποιήσουμε τις τιμές της επιτραπέζιας εισόδου χωρισμάτων MBR έχει δοθεί κατωτέρω. Το πρόγραμμα τροποποιεί την είσοδο χωρισμάτων τιμών δεύτερη του πίνακα χωρισμάτων MBR.
Η κωδικοποίηση του προγράμματος έχει δοθεί κατωτέρω:
/*Πρόγραμμα για να τροποποιηθούν οι τιμές της επιτραπέζιας εισόδου χωρισμάτων MBR */
# include <bios.h>
/*δομή για να διαβάσει την είσοδο χωρισμάτων από τον πίνακα χωρισμάτων*/
struct partition
{
unsigned char bootable ; /* Ενεργός ψηφιολέξη χωρισμάτων */
unsigned char start_side ; /* Αρχικό κεφάλι */
unsigned int start_sec_cyl ; /* συνδυασμός αρχικού αριθμού τομέα και κυλίνδρων */
unsigned char parttype ; /* Ψηφιολέξη δεικτών συστημάτων αρχείων*/
unsigned char end_side ; /* Τελείωμα του κεφαλιού*/
unsigned int end_sec_cyl ; /* συνδυασμός αρχικού αριθμού τομέα και κυλίνδρων */
unsigned long part_beg ; /* Σχετικός αριθμός τομέα */
unsigned long plen ; /* Μήκος χωρισμάτων στους τομείς*/
} ;
/* Δομή για να διαβάσει MBR */
struct part
{
unsigned char master_boot[446] ; /* Ipl (αρχικός φορτωτής προγράμματος)*/
struct partition pt[4] ; /* Πίνακας χωρισμάτων*/
int lasttwo ; /* Μαγικός αριθμός */
} ;
struct part p ;
void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* επιδείξτε τις επιτραπέζιες πληροφορίες χωρισμάτων*/
getch();
/*Υποθέστε ότι θέλουμε να τροποποιήσουμε τις πληροφορίες χωρισμάτων της δεύτερης εισόδου χωρισμάτων από τον πίνακα χωρισμάτων MBR, με αυτές τις τιμές */
p.pt[1].bootable = 0x80; /* Ενεργό χώρισμα μποτών */
p.pt[1].parttype = 0x7; /*Χώρισμα NTFS*/
p.pt[1].start_side = 0; /* Αρχικό κεφάλι = 0*/
p.pt[1].end_side = 31; /* Τελείωμα επικεφαλής == 31 */
p.pt[1].part_beg = 808416;/* Σχετικός τομέας = 808416
*/
p.pt[1].plen = 405216; /* Συνολικοί τομείς στο χώρισμα = 405216 */
|