Доработайте 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 */
|