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

Discussion in 'WASM.WIN32' started by miditriy, Apr 29, 2009.

  1. miditriy

    miditriy New Member

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

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

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    Файловая ссылка это индекс (порядковый номер) файла в MFT.
     
  3. miditriy

    miditriy New Member

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

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

    Vic New Member

    Blog Posts:
    0
    Joined:
    Apr 12, 2008
    Messages:
    75
    miditriy
    не уверен по поводу терминологии, но если правильно понял вопрос, то непонятно как добраться до файла зная его имя?

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

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

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    FSCTL_READ_MFT_RECORD = 0x90068;
     
  6. Partner

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    Не могут. В пределах тома они все одинаковые.
     
  7. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Apr 12, 2008
    Messages:
    75
    =) тогда понятно, иначе обозвали одну сущность. Насколько помню строка MFT называется "MFT записью".
     
  9. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    10
    Там не строка, там килобайт целый ;)
     
  10. Vic

    Vic New Member

    Blog Posts:
    0
    Joined:
    Apr 12, 2008
    Messages:
    75
    килобайт то оно конечно (кстати не всегда), но MFT по сути таблица, а запись MFT - строка таблицы =)
     
  11. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    10
    Полностью с Вами согласен, коллега!
     
  12. Vic

    Vic New Member

    Blog Posts:
    0
    Joined:
    Apr 12, 2008
    Messages:
    75
  13. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    10
    Vic СПАСИТЕЛЬ!!!!!

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

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

    Vic New Member

    Blog Posts:
    0
    Joined:
    Apr 12, 2008
    Messages:
    75
    =) рад был помочь
     
  15. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    10
    Ковыряюсь в Runtime DiskExplorer, все получается!!!

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

    NeuronViking New Member

    Blog Posts:
    0
    Joined:
    Oct 29, 2004
    Messages:
    476
    Location:
    где-то в Сиднее
    Vic
    что это за книга http://depositfiles.com/files/2qw4mxyfh ? можно ее целиком в электронном виде поиметь?
     
  17. ADZ

    ADZ New Member

    Blog Posts:
    0
    Joined:
    Apr 20, 2007
    Messages:
    41
    Брайн Кэрриэ. Криминалистический анализ файловых систем. Эл.версия гуглится на ура.
     
  18. NeuronViking

    NeuronViking New Member

    Blog Posts:
    0
    Joined:
    Oct 29, 2004
    Messages:
    476
    Location:
    где-то в Сиднее
    ADZ
    спасибо!
     
  19. miditriy

    miditriy New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2009
    Messages:
    10
    Брайн Кэрриэ. Криминалистический анализ файловых систем, мега книга все что неделю искал собрано и разжовано в одном месте!
    скачал отсюда без проблем
    http://www.digitland.ru/content/view/305/12/