Drive subsystem, filesystem drivers
-
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
CleverMouse wrote:когда ты пишешь [edi+16], ты же держишь в уме, что edi указывает на MFT record, а 16 - вполне конкретное поле в этой MFT record
Не совсем, я довольно много смотрел в HEX редактор, и сейчас представляю себе поле скорее как смещение - расстояние в редакторе от начала атрибута. Во всяком случае, в коде diamond'а это мне проблем не доставляло - такая специфика задачи. Так что такое оформление доставит некоторые неудобства, но если ты веришь, что это кто-то будет читать, то на правах отдельного поручения, я могу оформить повторяющиеся структуры в виде констант. Где их лучше разместить?
Ухты! Это что, полудокументация от microsoft? В ntfs неоднократно встречаются всякие циклические счётчики, но в данном случае не совсем понял, когда я должен его увеличивать?
-
- Posts 1625
- Joined: Thu Sep 03, 2009 1:52 pm
Pathoswithin wrote:Где их лучше разместить?
Можно прямо в ntfs.inc, чтобы далеко не ходить. Можно создать отдельный файл ntfs_layout.inc, непринципиально.
Pathoswithin wrote:В ntfs неоднократно встречаются всякие циклические счётчики, но в данном случае не совсем понял, когда я должен его увеличивать?
При создании новой записи в MFT для нового файла/папки.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
Понятно что в ntfs.inc, но может не в начале, а поближе к коду?
Нет, такой счётчик находится в начале записи. А эти счётчики находятся в атрибуте $FILE_NAME и индексах каталога, привязаны к ссылкам файла на папку и папки на файл. И чё-то я не врубился...
-
- Posts 1625
- Joined: Thu Sep 03, 2009 1:52 pm
Как хочешь, можно и ближе к коду.
А эти счётчики - часть ссылки, должны быть точной копией из той записи, на которую ты ссылаешься.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
Вроде разобрался со счётчиками. Посмотри со строки 2320, такого типа оформление тебя устроит?
-
- Posts 1625
- Joined: Thu Sep 03, 2009 1:52 pm
Добавь префиксы вроде flags -> recordHdr.flags, - точка - допустимый символ в идентификаторах fasm - будет нормально. flags без префикса - слишком неуникальное имя.
-
- Posts 1625
- Joined: Thu Sep 03, 2009 1:52 pm
CleverMouse wrote:Если да, то я добавлю, когда будет время.
Я добавила новый вопрос/ответ в build.txt.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
Оформление. Так разогнался, что написал basic concepts. Хотя сомневаюсь, что от этого стало всё сразу понятно.
Файлы/папки с названиями с упоминанием символа ™ не открываются. Выдаётся ошибка.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
Есть два теоретических случая, которые мой драйвер не предусматривает. Неплохо бы проверить, встречаются ли они на практике.
Может ли быть фрагментирована карта раздела (файл $Bitmap)? Например, после увеличения заполненого раздела. С помощью GParted мне не удалось этого добиться, он перемещает $Bitmap в другое место целиком.
Папка состоит из узлов размером не менее 4 кб, что соответствует стандартному размеру кластера. Но кластер может быть и меньше, если указать его вручную, или размер всего раздела меньше 2 Гб. Может ли в таком случае узел папки быть фрагментирован? В windows xp мне не удалось добиться фрагментации файлов меньше 4 кб.
-
- Posts 1625
- Joined: Thu Sep 03, 2009 1:52 pm
Виндовый API дефрагментации, который с таким же успехом можно использовать для фрагментации, не работает с картой раздела, но позволяет перетасовывать отдельные кластеры внутри узлов папки. Так что ответы - "нет" на первый вопрос, "да" на второй.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
revision #5954
Залил, теперь должно работать безопасно.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
revision #5994
Редактирование/перезапись файла без изменения размера. Теперь можно сохранять настройки в образе на NTFS разделе.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
revision #6107
Ограничение на общее количество файлов на разделе поднято до нескольких тысяч.
-
- Posts 1315
- Joined: Thu Mar 26, 2015 5:16 pm
Собственно, минимальный функционал записи достигнут, можно начинать тестировать. Функция 70.4 не тестировалась вообще.
Хотя я повысил стабильность работы IDE дисков, этого может быть недостаточно. В NTFS много отдельных операций, сбой некоторых может привести к серьёзным повреждениям файловой системы. Более того, дисковый кэш почти не позволяет отслеживать ошибки. В общем, меня также интересует статистика по ошибкам IDE и BIOS дисков.
Users browsing this forum: No registered users and 5 guests