Диалог для просмотра метаданных FAT32
Структура системы FAT. Структура файловой записи. Цепочки кластеров, корневой каталог, файловые атрибуты. Структура построения проекта. Функции и переменные управляющего приложения и DLL-модуля. Ошибка, вызванная некорректным ID контроля диалогового окна.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.01.2013 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
while(currentCell < 0x0FFFFFF7)
{
if(currentCell<256)
{
currentCell=Fat[currentCell];
sprintf(temp, "0x%08X", currentCell);
strcat(buffer, "->");
strcat(buffer, temp);
}
else
{
currentCell = 0x0FFFFFF7;
strcpy(buffer, "повреждённый кластер");
}
}
SetDlgItemText(hDlg, IDC_CHAIN, buffer);
}
}
else
MessageBox
(
hDlg,
"Не могу прочитать корневой каталог!",
NULL,
MB_ICONERROR | MB_OK | MB_SYSTEMMODAL
);
}
Приложение В - Листинг управляющего приложения USBDrvReader.exe
Листинг USBDrvReader.cpp
// USBDrvReader.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#ifdef __cplusplus
#define IMPORT extern "C" __declspec (dllimport)
#else
#define IMPORT __declspec (dllimport)
#endif
//Грузим наши функции из DLL с помощью Fat32Info.lib
#pragma comment(lib,"Fat32Info.lib")
//Список импортируемых функций
IMPORT void ReadBoot (HWND hDlg, UINT uIDC_DAMP, UINT uIDC_DATA, LPCTSTR path);
IMPORT void ReadTable(HWND hDlg, UINT uIDC_DAMP, UINT uIDC_DATA, LPCTSTR path);
IMPORT void ReadRoot (HWND hDlg, UINT uIDC_DAMP, UINT uIDC_DATA, LPCTSTR path, UINT uIDC_N, UINT uIDC_CHAIN, int pos);
void ResizeWnd(HWND hDlg, RECT pWndRect);//Функция перерисоки элементов окна при изменении его размера
BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
void ResizeWnd(HWND hDlg, RECT pWndRect)
{
long Width = pWndRect.right - pWndRect.left;
long Height= pWndRect.bottom- pWndRect.top;
MoveWindow(GetDlgItem(hDlg,IDC_INFO_FAT), 0, 2,Width/2 - 1, 14,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_DATA) , 0,20,Width/2 - 1,Height - 100,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_DAMP_FAT),Width/2, 2,Width/2 - 1, 14,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_DAMP) ,Width/2,20,Width/2 - 6,Height - 100,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_SHOW_GETDRV), 5, Height - 70,135, 18,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_GETDRV) , 142, Height - 72 ,30, 22,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_SETDEVICE), 175, Height - 72,Width - 175 - 40, 22,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_SETDRV), Width - 35, Height - 72 ,30, 22,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_CLUSTERS), 0, Height - 48,2*Width/3, 14,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_BUTTONL), 4, Height - 30,24, 23,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_N), 28,Height - 30,28, 22,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_BUTTONR), 58,Height - 30,24, 23,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_CHAIN), 84,Height - 30,Width - 84 - 160, 23,TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_RELOAD), Width - 158,Height - 30,75, 23,TRUE);
MoveWindow(GetDlgItem(hDlg,IDCANCEL), Width - 82 ,Height - 30,75, 23,TRUE);
}
char szDrvPath[16] = {0};
int pos = -1, func = -1;
BOOL CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
BOOL bRet = FALSE;
BOOL bCmd = FALSE;
RECT pRect= {0};
HBRUSH hBrush; //цвет фона диалогового окна
char buf[2] = {0};
switch(message)
{
case WM_CTLCOLORDLG:
hBrush = CreateSolidBrush(RGB(201, 201, 205));
bRet = (BOOL) (LONG)hBrush;
break;
case WM_INITDIALOG:
strcpy(szDrvPath,"\\\\.\\E:");
SetDlgItemText(hWnd, IDC_GETDRV, "E");
bRet = TRUE;
break;
case WM_SIZE:
if(GetClientRect(hWnd,&pRect))
ResizeWnd(hWnd, pRect);
SetDlgItemText(hWnd,IDC_INFO_FAT,"Информация FAT");
SetDlgItemText(hWnd,IDC_DAMP_FAT,"Дамп");
break;
case WM_COMMAND:
bRet = TRUE;
bCmd = TRUE;
break;
case WM_DESTROY:
PostQuitMessage(0);
EndDialog(hWnd, TRUE);
break;
}
if(bCmd)
switch(LOWORD(wParam))
{
case IDM_BOOT:
func = 1;
ReadBoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath);
break;
case IDM_FAT:
func = 2;
ReadTable(hWnd, IDC_DAMP, IDC_DATA, szDrvPath);
break;
case IDM_ROOT:
pos = 0;
func = 3;
ReadRoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath, IDC_N, IDC_CHAIN, pos);
break;
case IDC_RELOAD:
switch(func)
{
case 1:
ReadBoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath);
break;
case 2:
ReadTable(hWnd, IDC_DAMP, IDC_DATA, szDrvPath);
break;
case 3:
ReadRoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath, IDC_N, IDC_CHAIN, pos);
break;
};
break;
case IDC_SETDEVICE:
strcpy(szDrvPath,"\\\\.\\");
GetDlgItemText(hWnd, IDC_SETDRV, buf, 2);
strcat(szDrvPath, buf);
strcat(szDrvPath, ":");
SetDlgItemText(hWnd, IDC_GETDRV, buf);
break;
case IDC_BUTTONR:
pos++;
ReadRoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath, IDC_N, IDC_CHAIN, pos);
break;
case IDC_BUTTONL:
if(0 < pos--)
ReadRoot(hWnd, IDC_DAMP, IDC_DATA, szDrvPath, IDC_N, IDC_CHAIN, pos);
break;
case IDM_EXIT:
case IDCANCEL:
SendMessage(hWnd,WM_DESTROY,0,0);
break;
}
return bRet;
}
Размещено на Allbest.ru
Подобные документы
Понятие сектора. Обобщенная структура диска с FAT. Расчет емкости диска с ФС FAT. Требования к файловой системе высокого уровня. Структура тома NTFS. MFT – главная файловая таблица. Номера кластеров, адреса, отрезки. Резидентные атрибуты файловой записи.
презентация [68,4 K], добавлен 20.12.2013Классификация файловых систем. Их характеристики и области применения. Структура раздела FAT. Компоненты системной области логического диска: загрузочная запись, зарезервированные сектора, таблицы размещения файлов, корневой каталог. Файловые атрибуты.
реферат [103,1 K], добавлен 01.06.2015Основное назначение файловой системы как эффективное решение задачи. История создания и общая характеристика файловой системы FAT. Характеристика файловых систем FAT16 и FAT32 и их сравнение. Альтернативная файловая система NTFS и её сравнение с FAT32.
реферат [27,2 K], добавлен 01.12.2014Определение файловой системы. Виртуальные и сетевые файловые системы. Структура и версии системы FAT. Определение максимального размера кластера. Драйверы файловой системы, файлы и каталоги. Способы доступа к файлам, находящимся на удаленном компьютере.
доклад [29,2 K], добавлен 11.12.2010Файловая система как "пространство", в котором размещаются файлы. Типы файлов, их логическая организация. Файловая система FAT32: структура и кластеры. Структура файловой системы NTFS, ее каталоги. Сравнительная характеристика систем FAT32 и NTFS.
статья [436,0 K], добавлен 14.05.2010Понятие файла, его сущность и особенности, общие сведения и характеристика файловых систем. Классификация файлов, их разновидности и отличительные черты. Содержание и структура файловой системы FAT, ее элементы и предназначение. Особенности FAT32.
реферат [276,4 K], добавлен 04.04.2009FAT - простая файловая система, разработанная для небольших дисков и простых структур каталогов. Структура папки FAT. Размеры кластеров по умолчанию для FAT16 и FAT32. Сравнение их характеристик. Обзор файловой системы FAT и ее основные преимущества.
статья [24,2 K], добавлен 30.04.2010Организация, хранение и именование данных на носителях информации в компьютерах с помощью файловой системы. Логические диски в ОС Windows. Корневой каталог. Характеристики файла. Понятия кластера и дефрагментации. Логическая структура носителя информации.
презентация [1,2 M], добавлен 04.12.2016Использование операционной системы семейства Windows. Файловые системы FAT32 и NTFS. Популярные утилиты-дефрагментаторы. Программа Windows Disk Defragmente. Дефрагментация свободного места или полная дефрагментация. Функции, выполняющие дефрагментацию.
курсовая работа [3,2 M], добавлен 07.05.2011Основные возможности файловой системы NTFS. Введение механизма транзакции. Модель распределения дискового пространства. Объектная модель безопасности NT. Количество файлов в корневом и некорневом каталогах. Структура и атрибуты файла в системе NTFS.
реферат [19,8 K], добавлен 23.10.2011