ого класу і мають подібну функціональність.
На малюнку 3.15 представлений клас ListVolumeBox.
Малюнок 3.19 - Класу ListVolumeBox
У класі міститься покажчик на список файлових систем (volume) і метод прив'язки списку до візуального елементу (ViewVolume).
Конструктори аналогічні конструкторам базового класу.
Решта методів успадковуються від базового класу і мають подібну функціональність.
У даному пункті описана розробка програмних інтерфейсів доступу до файлів. Платформа UEFI BIOS надає достатньо високорівневі можливості роботи з файловою системою. Особливістю архітектури платформи є підтримка запуску сторонніх драйверів файлових систем реалізують єдиний інтерфейс. Тому використання стандартних функцій UEFI BIOS не обмежує можливостей роботи з різними файловими системами і є виправданим.
Для зручності і розширюваності необхідно розробити інтерфейс для абстрактної файлової системи. Це дозволить надалі реалізовувати розширення можливостей, створення віртуальних файлових систем без реалізації драйвера.
На малюнку 3.16 представлена ??схема успадкування класів роботи з файлами.
Малюнок 3.20 - Схема успадкування класів роботи з файлами
Класи IStatus, IMediaRecord, IFileRecord, IFile, IVolumeRecord, IVolume, IMediaLocator є повністю абстрактними і визначають інтерфейс для файлової системи.
Інші класи реалізують всі методи, які описані в успадкованих інтерфейсах. Тому інтерфейс докладно можна не розглядати.
На малюнку 3.17 представлений клас EFIMediaLocator.
Малюнок 3.21 - Класу EFIMediaLocator
Клас містить дані про ідентифікатор локатора, який необхідний для реалізації локатора (guid), який буде об'єднувати різні реалізації, дані про статус останньої операції (status), історію знайдених файлових систем (history), кількість знайдених файлових систем (number) і список ідентифікаторів знайдених файлових систем (id). Описані дані повертають відповідні методи (LastStatus, LocatorGUID, Number, ID). Так само є метод, який повертає ідентифікатор файлової системи, з якою здійснено запуск програми (StatusID).
Клас не містить конструктори.
У класі міститися методи пошуку активних файлових систем (Locate) і для отримання інтерфейсу файлової системи (Volume), для визначення поточного індексу файлової системи за ідентифікатором (Index), методи для додавання в список елементів активних файлових систем (AddID), очищення списку активних файлових систем (ClearID).
На малюнку 3.18 представлений клас EFIVolumeRecord.
Малюнок 3.22 - Класу EFIVolumeRecord
Клас містить покажчик на структуру з інформацією про файлову систему (info) і статус останньої операції (status). Всі методи цього класу повертають або змінюють відповідні властивості об'єкта файлової системи.
На малюнку 3.19 представлений клас EFIVolume.
Малюнок 3.23 - Класу EFIVolume
Клас містить дескриптор файлової системи (handle), покажчик на вбудований інтерфейс файлової системи (volume), на кореневий каталог (root) та інформацію про файлову систему (info).
У класі є методи для отримання інтерфейсу роботи з кореневим каталогом (Root) і метод закриття поточного інтерфейсу файлової системи (Close).
Інші методи аналогічні класам попереднього методу.
На малюнку 3.20 представлений клас EFIFileRecord.
Малюнок 3.24 - Класу EFIFileRecord
Клас містить покажчик на структуру з інформацією про файлову систему (info) і статус останньої операції (status). Всі методи цього класу повертають або змінюють відповідні властивості об'єкта файлу.
На малюнку 3.21 представлений клас EFIFile.
Малюнок 3.25 - Клас EFIFile
Клас містить покажчик на вбудований інтерфейс файлу (file) та інформацію про файлову систему (info).
Клас містить методи для відкриття нового файлу (Open), закриття поточного (Close), видалення поточного (Delete), методи для отримання або установки покажчика на позицію всередині файлу, для читання інформації про фото, що міститься в каталозі або для читання набору байт з файлу (Read), для запису масиву у файл (Write) і для скидання даних кешированя операції на жорсткий диск (Flush).
Інші методи аналогічні класам попереднього методу.