Курсовая работа: Дефрагментатор файловой системы

Для использования этой операции необходимо вызвать функцию DeviceIoControl.

3.1.3 Структура RETRIEVAL_POINTERS_BUFFER

Необходимо пройти по структуре возвращаемой FSCTL_GET_RETRIEVAL_POINTERS

Далее рассмотрим параметры входящие в структуру:

ExtentCount. Число элементов в массив.

StartingVcn. Начальный VCN возвращенный вызываемой функцией.

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

NextVcn. VCN на котором начинается следующая область. Это значение отнять либо StartingVcn, либо NextVcn предыдущего члена массива равно длине, в кластерах, текущей экстенте. Длинна является входным параметром для функции FSCTL_MOVE_FILE.

Lcn. VCN на котором начинается текущая экстента на томе. Эта переменная является входным параметров для FSCTL_MOVE_FILE. Для NTFS значение (LONGLONG) -1 указывает либо сжатие, либо нераспределенный регион рассеянных файлов.

3.1.4 Управляющий код FSCTL_MOVE_FILE

Используется для перемещения каждого кластера в последовательности обхода структуры. Перемещает виртуальные кластеры файла из одного логического кластера в другой, в пределах раздела. Если другой процесс что-то записывает на диск или в файл, необходимо обновить битовую карту и структуру. Если операция завершена успешно DeviceIoControl возвращает не нулевое значение. Нуль возвращается в случае ошибки выполнения, ее можно узнать, используя GetLastError. При ошибке перемещения некоторые кластеры все же могут быть перемещены, в таком случае необходимо обновить битовую карту и установить новые указатели.

3.1.5 Функция CreateFile

Функция CreateFile создает или открывает каталог, физический диск, том, буфер консоли (CONIN$ или CONOUT$), устройство на магнитной ленте, коммуникационный ресурс, почтовый слот или именованный кан?

К-во Просмотров: 421
Бесплатно скачать Курсовая работа: Дефрагментатор файловой системы