Дипломная работа: Розробка програмного забезпечення файлового менеджера
Таблиця 2.9 – Структура дескриптора для довгого імені
Зсув | Розмір, байт | Опис | Ім’я |
0 | 1 | Номер порції імені | fn |
1 | 10 | 5 символів імені об’єкту | FiveSymb |
11 | 1 | Байт атрибутів, дорівнює 0Fh | attr |
12 | 1 | Завжди дорівнює 0 | reserv |
13 | 1 | Контрольна сума короткого ім’я | CRC |
14 | 12 | 6 символів імені об’єкту | SixSymb |
26 | 2 | Резерв | reserv2 |
28 | 4 | 2 символа імені об’єкту | TwoSymb |
Ім’я в останній порції довгого імені може бути меншим за 13 символів. У такому випадку значима частина імені завершується нулем. усі інші поля імені заповнюються FFFF.
2.4 Програмні структури
Всі необхідні програмні структури представлені в header- файлах. Ціль їхнього створення - організація даних, прочитаних з носіїв. Наприклад, кожний жорсткий диск буде представлений структурою
typedef struct _HARDINFO
{
char nHard; //номер жорсткого диску
void* hDrive; //хендлжорсткого диску
UINT dwSectorSize; //розмірсектора
UINT bitsPerSector; //кількість розрядів для адресації всерединісектора
UINT dwExtendedAddr; //адресарозширеного розділу
PLOGICAL_DISC disklist;
} HARDINFO, *PHARDINFO;
Інформація про розділи організується в список структур, по одному списку на кожний жорсткий диск:
typedef struct _LOGICAL_DISC
{
void* next;
char nHard;
char nDisc;
char active;
UINT abs_addr;
UINT secLength;
UINT id;
char* cpFS;
UINT SN4;
UINT gbLength;
UINT mbLength;
void* disc_info;
UINT prcfree;