Page 7 of 20

Re: NTFS

Posted: Tue Jun 09, 2015 3:11 pm
by Pathoswithin
CleverMouse wrote:когда ты пишешь [edi+16], ты же держишь в уме, что edi указывает на MFT record, а 16 - вполне конкретное поле в этой MFT record
Не совсем, я довольно много смотрел в HEX редактор, и сейчас представляю себе поле скорее как смещение - расстояние в редакторе от начала атрибута. Во всяком случае, в коде diamond'а это мне проблем не доставляло - такая специфика задачи. Так что такое оформление доставит некоторые неудобства, но если ты веришь, что это кто-то будет читать, то на правах отдельного поручения, я могу оформить повторяющиеся структуры в виде констант. Где их лучше разместить?
Ухты! Это что, полудокументация от microsoft? В ntfs неоднократно встречаются всякие циклические счётчики, но в данном случае не совсем понял, когда я должен его увеличивать?

Re: NTFS

Posted: Tue Jun 09, 2015 3:24 pm
by CleverMouse
Pathoswithin wrote:Где их лучше разместить?
Можно прямо в ntfs.inc, чтобы далеко не ходить. Можно создать отдельный файл ntfs_layout.inc, непринципиально.
Pathoswithin wrote:В ntfs неоднократно встречаются всякие циклические счётчики, но в данном случае не совсем понял, когда я должен его увеличивать?
При создании новой записи в MFT для нового файла/папки.

Re: NTFS

Posted: Tue Jun 09, 2015 3:50 pm
by Pathoswithin
Понятно что в ntfs.inc, но может не в начале, а поближе к коду?

Нет, такой счётчик находится в начале записи. А эти счётчики находятся в атрибуте $FILE_NAME и индексах каталога, привязаны к ссылкам файла на папку и папки на файл. И чё-то я не врубился...

Re: NTFS

Posted: Tue Jun 09, 2015 3:53 pm
by CleverMouse
Как хочешь, можно и ближе к коду.

А эти счётчики - часть ссылки, должны быть точной копией из той записи, на которую ты ссылаешься.

Re: NTFS

Posted: Fri Jun 12, 2015 6:57 pm
by Pathoswithin
Вроде разобрался со счётчиками. Посмотри со строки 2320, такого типа оформление тебя устроит?

Re: NTFS

Posted: Mon Jun 15, 2015 5:19 pm
by CleverMouse
Добавь префиксы вроде flags -> recordHdr.flags, - точка - допустимый символ в идентификаторах fasm - будет нормально. flags без префикса - слишком неуникальное имя.

Re: NTFS

Posted: Tue Jun 16, 2015 6:37 pm
by CleverMouse
CleverMouse wrote:Если да, то я добавлю, когда будет время.
Я добавила новый вопрос/ответ в build.txt.

Re: NTFS

Posted: Tue Jun 30, 2015 1:06 pm
by Pathoswithin
Оформление. Так разогнался, что написал basic concepts. Хотя сомневаюсь, что от этого стало всё сразу понятно.

Re: NTFS

Posted: Wed Sep 30, 2015 7:00 pm
by nsvad
Файлы/папки с названиями с упоминанием символа ™ не открываются. Выдаётся ошибка.

Re: NTFS

Posted: Tue Nov 24, 2015 2:14 am
by Pathoswithin
Есть два теоретических случая, которые мой драйвер не предусматривает. Неплохо бы проверить, встречаются ли они на практике.

Может ли быть фрагментирована карта раздела (файл $Bitmap)? Например, после увеличения заполненого раздела. С помощью GParted мне не удалось этого добиться, он перемещает $Bitmap в другое место целиком.

Папка состоит из узлов размером не менее 4 кб, что соответствует стандартному размеру кластера. Но кластер может быть и меньше, если указать его вручную, или размер всего раздела меньше 2 Гб. Может ли в таком случае узел папки быть фрагментирован? В windows xp мне не удалось добиться фрагментации файлов меньше 4 кб.

Re: NTFS

Posted: Mon Nov 30, 2015 6:17 pm
by CleverMouse
Виндовый API дефрагментации, который с таким же успехом можно использовать для фрагментации, не работает с картой раздела, но позволяет перетасовывать отдельные кластеры внутри узлов папки. Так что ответы - "нет" на первый вопрос, "да" на второй.

Re: NTFS

Posted: Thu Dec 10, 2015 2:34 pm
by Pathoswithin
revision #5954
Залил, теперь должно работать безопасно.

Re: NTFS

Posted: Mon Dec 21, 2015 2:59 pm
by Pathoswithin
revision #5994
Редактирование/перезапись файла без изменения размера. Теперь можно сохранять настройки в образе на NTFS разделе.

Re: NTFS

Posted: Thu Jan 28, 2016 3:09 am
by Pathoswithin
revision #6107
Ограничение на общее количество файлов на разделе поднято до нескольких тысяч.

Re: NTFS

Posted: Mon Feb 08, 2016 2:33 pm
by Pathoswithin
Собственно, минимальный функционал записи достигнут, можно начинать тестировать. Функция 70.4 не тестировалась вообще.

Хотя я повысил стабильность работы IDE дисков, этого может быть недостаточно. В NTFS много отдельных операций, сбой некоторых может привести к серьёзным повреждениям файловой системы. Более того, дисковый кэш почти не позволяет отслеживать ошибки. В общем, меня также интересует статистика по ошибкам IDE и BIOS дисков.