Я искал способ объединить большие файлы (несколько гигабайт) вместе, не переписывая один из файлов. Я уверен, что ОС делает это внутренне, когда манипулирует главной файловой таблицей. Это чисто для внутреннего приложения, где скорость критически важна даже ценой целостности данных (в случае риска для недокументированных API). Приложение обрабатывает большое количество высокоскоростных многоканальных данных Ethernet, где коррумпированная единица работы (файл в этом случае) не окажет большого влияния на общие результаты обработки.Объединить большие файлы с помощью API ядра Win NT
В данный момент при объединении файлов A
и B
прилагаемое усилие равно: A[Read] + B[Read] +
C [Write] `. Кто-нибудь из вас, гуру NT, пролил свет на то, как обойти это, чтобы напрямую добраться до MFT?
Мне не удалось получить какие-либо сведения о том, какой API следует исследовать и по достоинству оценят некоторые указатели. Хотя приложение управляется, я с удовольствием изучаю собственные API и даже настраиваю легкие виртуальные машины для тестирования.
Заранее спасибо.
То, что вы предлагаете, невозможно во многих файловых системах, которые требуют, чтобы каждый кластер, принадлежащий файлу, был смежным, за исключением последнего. –
Открыть A, установить указатель файла в конец файла и записать содержимое B. Нет смысла взломать MFT. Потеря A в процессе, особенно при ошибке, обычно не считается очень приемлемой. –