Логические диски в операционной системе Windows NT 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Логические диски в операционной системе Windows NT



В операционных системах Windows 98/NT/XP реализована поддержка 32-битного доступа к файлам и дискам.

Цель работы: написать программу, которая отображает информацию о логических дисках в текстовом виде.

Теоретические сведения

Основные функции API для работы с логическими томами. DWORD GetLogicalDrives (void) определяет логические диски на данном ПК, возвращает 32-битное значение, каждый бит которого указывает, существует ли соответствующий логический диск (например, бит 0 установлен, если в системе виден диск A:\).

UINT GetDriveType(LPTSTR lpszRootPathName) возвращает тип диска, идентифицируемого параметром lpszRootPathName – указателем на корневой каталог.

Следующая функция, формирует информацию о конкретной файловойсистеме и определяет указатели

GetVolumeInformation (LPTSTR lpRootPathName,

LPTSTR lpVolumeNameBuffer,

DWORD nVolumeNameSize,

LPDWORD lpVolumeSerialNumber,

LPDWORD lpMaximumComponentLength,

LPDWORD lpFileSystemFlags,

LPTSTR lpFileSystemNameBuffer,

DWORD nFileSystemNameSize), где

· параметр lpVolumeNameBuffer. возвращает метку тома,

· параметр nVolumeNameSize определяет максимальный размер буфера в символах,

· параметр lpVolumeSerialNumber - серийный номер тома,

· параметр lpMaximumComponentLength - максимальное количество допустимых символов, допустимое в именах каталогов и файлах,

· параметр lpFileSystemFlags - флаги файловой системы,

· параметр lpFileSystemNameBuffer указывает на буфер файловой системы, параметр nFileSystemNameSize определяет максимальный размер этого буфера.

BOOL SetVolumeLabel (LPTSTR lpRootPathName, LPTSTR lpVolumeName) изменяет метку тома. Первый параметр задает корневой каталог, а второй определяет новую метку тома.

BOOL GetDiskFreeSpace (LPTSTR lpRootPathName,

LPDWORD lpSectorPerCluster,

LPDWORD lpBytesPerSector,

LPDWORD lpFreeCluster,

LPDWORD lpClusters)

определяе т метку тома, где

· параметр lpSectorPerCluster возвращает количество секторов в кластере;

· параметр lpBytesPerSector – количество байтов в секторе;

· параметр lpFreeCluster - количество свободных кластеров;

· параметр lpClusters - общее количество кластеров.

Требования к программе.

Программа должна выполнять следующие функции:

· отображать имя логического диска в управляющем элементе ComboBox;

· отображать общую информации о диске: метку тома, серийный номер диска, имя файловой системы, количество секторов в одном кластере, количество байтов в одном секторе, размер диска в байтах, размер свободного пространства на дисках в байтах, размер занятого дискового пространства в байтах.

Отчет должен содержать: постановку задачи, листинг кода всех модифицированных функций и их назначение, выводы.

Варианты заданий.

3.4.Контрольные вопросы

1. Функция изменения метки тома.

2. Формат метки тома.

3. Характеристику файловой системы.

Лабораторная работа № 4

Работа с файлами средствами Win API.

В операционных системах Windows 98/NT/XP реализована поддержка файловых систем: FAT, NTFS, CDFS, HPFS.

Цель работы: написать программу, которая отображает информацию об используемых файлах и режимах работы с ними в текстовом виде.

Теоретические сведения

Файловая система в MS DOS.

Стpуктуpа области ЭЛЕМЕНТ КАТАЛОГА и назначение полей представлены в табл.4.1.

Таблица 4.1.

Смещение Н Длина,│ байт Содержимое полей
    ИМЯ ФАЙЛА. Значение первого байта: 00 - элемент никогда не использовался, (т.е. его можно применять как ограничитель при поиске); Е5 - файл удален; 2Е - подкаталог (2Е - это код ASCII "."); если второй байт имени равен 2Е, то поле КЛАСТЕРА указывает на кластер начало родительского каталога, любой другой символ - это первая буква имени обычного файла
    РАСШИРЕНИЕ ИМЕНИ
  АТРИБУТЫ ФАЙЛА: 01H - только чтение (read only); 02H - скрытый файл, который не включается в поиск по каталогу (hiden); 04H - системный файл, ----"---- (system); 08H - признак корневого каталога (т.е. в пе- рвых одиннадцати байтах содержится ме- тка тома и все остальные поля пусты); 10H - элемент является подкаталогом (--"--) 20H - разряд архива, который устанавливается; 20H - разряд архива, который устанавливается
  Резерв
    ВРЕМЯ СОЗДАНИЯ / модификиции файла: 15 - 10 разряды -- часы (0-23), 9 - 4 разряды -- минуты (0 - 59) 3 - 0 разряды -- секунды/2 (0 - 29)
    │ ДАТА СОЗДАНИЯ / модификации файла: 15 - 9 разряды -- год 1980 (0 - 119), 8 - 5 разряды -- месяц (1 - 19), 4 - 0 разряды -- день (1 - 31)
  НОМЕР НАЧАЛЬНОГО КЛАСТЕРА (связь с FAT), (первый кластер области данных имеет номер 002 как на жестком МД, так и на ГМД)
  РАЗМЕР ФАЙЛА (в байтах)
    Размер элемента оглавления

 

Связь полей FAT с физическим pасположением кластеров на диске показана на рис.4.1.

Номер первого кластера файла

Элемент каталога  
FDC.DOC    
  17H=23    
  Доступ к кластеру 23    
         

 

 

F                      
A … 02D         FF7   FFF  
T                 Последний кластер
          081H=129  
    1BH=27  
  18H=24  
                             

 

Рис.4.1. Связь полей FAT с физическим расположением кластеров на диске

 

Требования к программе.

Программа должна выполнять следующие функции: отображать общую информацию о файловой системе: максимально возможную длину имени файла, флаги файловой системы, тип файла, атрибуты, свойства.

Отчет должен содержать: постановку задачи, листинг кода всех модифицированных функций и их назначение, выводы.

Варианты заданий.

4.4.Контрольные вопросы

1. Какие файловые системы поддерживает операционная система Windows NT?

2. Атрибуты файлов.

3. Конвертирование файлов из одной файловой системы в другую.

4. Правило формирования имен файлов.

5. Транзакция.

6. Сравнительная характеристика следующих файловых систем: FAT, HPFS, NTFS.

7. Определение типа логического диска.

8. Получение информации о конкретной файловой системе.

9. Определение информации о томах.

10. Функция изменения метки тома.

Лабораторная работа № 5

Динамически подключаемые библиотеки DLL в WIN32

Цель работы: изучение механизма создания DLL модулей для Win32 разрядных приложений.

Теоретические сведения

Функции API содержатся в динамически подключаемых библиотеках (DLL). На этапе компиляции, когда встречается вызов API функций, компилятор не помещает ее код в исполняемый файл. Вместо этого он помещает в него команды вызова данной функции, содержащие указатель на DLL-библиотеку, в которой хранится функция, и имя функции. На этапе выполнения программы соответствующая функция вызывается загрузчиком Windows. Функция API вызывается только тогда, когда приложение загружается в память для выполнения. Благодаря применению DLL-библиотек экономится дисковое пространство и упрощается модификация Windows-приложений, которая сводится к обновлению только содержимого DLL-библиотек.

Создание проекта DLL-файла. Динамически подключаемая библиотека DLL является библиотечным файлом, содержащим функции.

Для создания проекта для DLL- файла необходимо выполнить следующие действия:

1. В меню File выбрать New, в списке проектов - Win32 Dynamic-Link Library, задать имя файлу библиотеки (например Tes t), нажать Ok.

2. В меню Build выбрать Set Active Configuration, отметить в панели имя файла DLL Win32 Release, нажать Ok.

Создание файла проекта библиотеки DLL c именем Test.dll закончено.

Создание кода исходного файла динамически подключаемой библиотеки Test.cpp. Для всех DLL сначала необходимо создать некоторый служебный код в файлах Test.cpp и Test.def. Для этого нужно выполнить следующие действия: в меню File выбрать New, source File, задать имя Test.cpp, нажать Ok.

В результате создается файл Test.cpp, в окне которого следует набрать такой код:

// пример кода DLL файла.

#include <windows.h>

// объявление прототипов функций DLL

// DllEntryPoint() входная точка DLL

BOOL WINAPI DllEntryPoint (HINSTANCE hDll,DWORD dwReason,

LPVOID Reserved)

{

Switch(dwReason)

{

case DLL_PROCESS_ATTACH:

{ break; }

case DLL_PROCESS_DETACH:

{ break; } }

return TRUE;

}

{ // добавление кода реализаций функций DLL }

Код в первом блоке переключателя (ниже DLL_PROCESS_ATTACH) выполняется, когда DLL присоединяется к EXE -файлу (когда EXE -файл загружает DLL).

Код во втором блоке переключателя (ниже DLL_PROCESS_DETACH)выполняется, когда DLL отсоединяется от EXE- файла.

Создание файла Test.def. Для создания файла Test.def необходимо выполнить следующие инструкции:

1. Выбрать в меню File New, Text File.

2. В окне File Name набрать имя файла Test.def.

3. Нажать кнопку Ok.

4. В окне файла Test.def набрать следующий код:

 

; в файлах с расширением DEF; обозначает комментарий

;DEF файл для DLL Test.dll

;

LIBRARY test



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 391; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.86.134 (0.027 с.)