NTFS и файловая запись

Тема в разделе "WASM.WIN32", создана пользователем miditriy, 29 апр 2009.

  1. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Исследую устройство NTFS DiskExplorer-ом, в целом ясность есть по структурам, атрибутам и т.д.
    Непонятно, как получить номер сектора файловой записи по файловой ссылке, так как в каталогах присутствуют только файловые ссылки и имена файлов. В различных статьях говориться, что файловая ссылка однозначно определяет положение файловой записи.

    Извиняюсь, если написал не в тот раздел
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Файловая ссылка это индекс (порядковый номер) файла в MFT.
     
  3. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Понятно, что это порядковый номер, можно ли по этому номеру достучаться до файловой записи??? MFT может быть размазан по всему диску, кроме того файловые записи могут иметь различную длину (хотя это почти не встречается, но в литературе упоминается). Мне нужно имея путь к файлу, достучаться до его файловой записи, структуры NTFS мне понятны, непонятно как перемещаться к следующим каталогам (в каталогах фигурируют только файловые ссылки)

    Смотрел в сторону дефрагментации в MSDN, там много интересного, но в данном случае для меня не подходит
     
  4. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    miditriy
    не уверен по поводу терминологии, но если правильно понял вопрос, то непонятно как добраться до файла зная его имя?

    В MFT есть запись кот. представляет собой корневой каталог. атрибут $INDEX_ROOT и $INDEX_ALLOCATION содержат индексный элемент. этот индекс состоит из таких полей как $FILE_NAME а так же номера записи в MFT .

    Если не сложно, уточни пожлста "файловая запись", я может и сам напутал немного с определениями.
     
  5. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    FSCTL_READ_MFT_RECORD = 0x90068;
     
  6. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Не могут. В пределах тома они все одинаковые.
     
  7. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Файловая запись (FILE Record)- это то что находится в MFT, в файловой записи содержат различные атрибуты в том числе и $INDEX_ROOT и $INDEX_ALLOCATION и т.д., индекс $DATA содержит ран лист (цепочка кластеров в которой и сидит наш файл). Небольшие файлы могут находиться прямо в файловой записи, то есть в MFT

    Как мне из корневого каталога перейти в подкаталог и дальше к файловой записи, файловые ссылки (номера записи в MFT) я нахожу, как мне с их помощью позиционироваться в MFT?
    Путь к файлу известен, но нужно сделать это в ручную.

    Просто перебором записей MFT я свой файл нахожу без проблем, но это долго и с точки зрения программирования не красиво, хотя и просто

    Partner, спасибо за FSCTL_READ_MFT_RECORD, но в микроконтроллере к сожалению таких вещей нет, все ручками нужно делать
    Пока ковыряюсь в Виндах чтоб суть проблемы усвоить

    статьи:
    http://www.insidepro.com/kk/044/044r.shtml очень хороший сайт
    http://window.edu.ru/window_catalog/files/r29155/samiit172.pdf
    http://www.linux-ntfs.org/ подробно разобраны структуры NTFS

    Огромное спасибо всем участникам!!!
     
  8. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    =) тогда понятно, иначе обозвали одну сущность. Насколько помню строка MFT называется "MFT записью".
     
  9. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Там не строка, там килобайт целый ;)
     
  10. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    килобайт то оно конечно (кстати не всегда), но MFT по сути таблица, а запись MFT - строка таблицы =)
     
  11. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Полностью с Вами согласен, коллега!
     
  12. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
  13. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Vic СПАСИТЕЛЬ!!!!!

    В пункте 2 ответ на мой вопрос, читаю Run List записи $MFT, отрезки ставлю в соответствие секторам или записям и вперед
    УРААА!!!!!

    ОГРОМНОЕ СПАСИБО!!!! я был на гране истерики :)))
     
  14. Vic

    Vic New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    75
    =) рад был помочь
     
  15. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Ковыряюсь в Runtime DiskExplorer, все получается!!!

    Еще раз ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!
     
  16. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    Vic
    что это за книга http://depositfiles.com/files/2qw4mxyfh ? можно ее целиком в электронном виде поиметь?
     
  17. ADZ

    ADZ New Member

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    41
    Брайн Кэрриэ. Криминалистический анализ файловых систем. Эл.версия гуглится на ура.
     
  18. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    ADZ
    спасибо!
     
  19. miditriy

    miditriy New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2009
    Сообщения:
    10
    Брайн Кэрриэ. Криминалистический анализ файловых систем, мега книга все что неделю искал собрано и разжовано в одном месте!
    скачал отсюда без проблем
    http://www.digitland.ru/content/view/305/12/