3.2 Функции и переменные DLL-модуля
Таблица 3.2.1 - Функции использующееся в DLL-модуле
Метод |
Назначение |
|
BOOL APIENTRY DllMain ( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) |
DllMain - дополнительная точка входа в динамически-подключаемую библиотеку (DLL). Если функция используется, то она вызывается системой тогда, когда процессы и потоки инициализированы и завершили работу или при вызове функции LoadLibrary и FreeLibrary. Параметры hInstance - дескриптор модуля DLL. Это значение - базовый адрес DLLв адресном пространстве ОС. ul_reason_for_call - указывает, почему DLL вызывает функцию точки входа. Этим параметром может быть одно из ниже перечисленных значений: DLL_PROCESS_ATTACH - DLL загружается в виртуальное адресное пространство текущего процесса в результате операции запуска или в результате вызова LoadLibrary. DLL_THREAD_ATTACH - текущий процесс создает новый поток. Когда это происходит, система вызывает функцию |
|
точки входа всех DLLs, в текущий момент связанных с процессом. DLL_THREAD_DETACH-поток выходит чисто. Если DLL сохранила указатель на распределенную память в слоте TLS, она должна использовать эту возможность, чтобы освободить память. DLL_PROCESS_DETACH - DLL выгружается из виртуального адресного пространства вызывающего процесса в результате неудачной загрузки DLL, завершения работы процесса или вызова функции FreeLibrary. lpvReserved - NULL для динамических загрузок и не ПУСТО (NULL) для статических загрузок. Возвращаемые значения Когда система вызывает функцию DllMain созначением DLL_PROCESS_ATTACH, функция возвращает значение ИСТИНА (TRUE), если она завершается успешно. Когда система вызывает функцию DllMain с каким-либо значением, а не DLL_PROCESS_ATTACH, возвращаемое значение игнорируется. |
||
void ReadBoot ( HWND hDlg, UINT IDC_DAMP, UINT IDC_DATA, LPCTSTR path ) |
ReadBoot - функция по чтению и расшифровке данных загрузочной области BOOT FAT. Параметры hDlg - дескриптор главного окна управляющего приложения IDC_DAMP - определяет ID элемента диалогового окна управляющего приложения для отображения дампа BOOT. IDC_DATA - определяет ID элемента диалогового окна управляющего приложения для отображения расшифрованной информации дампа BOOT. path - содержит путь к тому FAT, для котрого получаем расшифровку BOOT. Возвращаемые значения Функцыя не возвращает значений. |
|
void ReadTable ( HWND hDlg, UINT IDC_DAMP, UINT IDC_DATA, LPCTSTR path ) |
ReadTable - функция по чтению и расшифровке данных таблицы FAT. Параметры hDlg - дескриптор главного окна управляющего приложения IDC_DAMP - определяет ID элемента диалогового окна управляющего приложения для отображения дампа FAT. IDC_DATA - определяет ID элемента диалогового окна управляющего приложения для отображения расшифрованной информации дампа FAT. path - содержит путь к тому FAT, для котрого получаем расшифровку таблицы FAT. Возвращаемые значения Функция не возвращает значений. |
|
void ReadRoot ( HWND hDlg, UINT IDC_DAMP, UINT IDC_DATA, LPCTSTR path, UINT IDC_N, UINT IDC_CHAIN, int pos ) |
ReadRoot - функция по чтению и расшифровке данных корневого каталога ROOT FAT. Параметры hDlg - дескриптор главного окна управляющего приложения IDC_DAMP - определяет ID элемента диалогового окна управляющего приложения для отображения дампа ROOT. IDC_DATA - определяет ID элемента диалогового окна управляющего приложения для отображения расшифрованной информации дампа ROOT. path - содержит путь к тому FAT, для котрого получаем расшифровку BOOT. IDC_N - определяет ID элемента диалогового окна управляющего приложения для отображения номера текущего кластера в цепочке. pos - требуемый номер кластера в цепочке к котрому не обходимо осуществить переход Возвращаемые значения Функцыя не возвращает значений. |
- ВВЕДЕНИЕ
- 1. АНАЛИЗ СОСТОЯНИЯ ВОПРОСА
- 1.1 Структура системы FAT
- 1.2 Анализ области BOOT
- 1.2.1 Загрузочная запись
- 1.2.2 FSInfo
- 1.2.3 Определение типа FAT тома
- 1.3 Таблица FAT
- 1.3.1 Цепочки кластеров
- 1.3.2 Файловые записи
- 1.4 Корневой каталог ROOT
- 1.5 Структура файловой записи
- 1.6 Имя файла в FAT
- 1.7 Файловые атрибуты
- 2. ПОСТАНОВКА ЗАДАЧИ
- 3. РАЗРАБОТКА ПРОГРАММЫ
- 3.1 Структура построения проекта
- 3.2 Функции и переменные DLL-модуля
- 3.3 Функции и переменные управляющего приложения
- 4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
- 4.1 Ошибки выявленные при тестировании
- 4.1.1 Ошибка вызванная отсутствием выравнивания полей fat_boot_sector
- 4.1.2 Ошибка вызванная некорректным ID контрола диалогового окна
- 4.2 Конечное тестирование приложения
- ВЫВОДЫ