Диалог для просмотра метаданных 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.2009

  • FAT - простая файловая система, разработанная для небольших дисков и простых структур каталогов. Структура папки 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.