Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

Первый шаг к намеченной цели :)   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2007-08-11 17:05) [80]


> А я уже почти разобралась с чтением, после его работы.

Возможно определишь что именно портит для случая MFT


 
Riply ©   (2007-08-12 04:09) [81]

>[80] Anatoly Podgoretsky ©   (11.08.07 17:05)
>Возможно определишь что именно портит для случая MFT

Специально, я не изучала изменения в MFT после работы ПМ,
но вот, что сразу бросилось в глаза:
При его помощи, я сначала уменьшила диск, потом вернула прежний размер.
Обзовем это "передвижкой", а "читаемой" записью, ту которая
прошла первый тест на валидность - имеет MagicType любой из известных.
У MFT есть такой "параметр" - ValidDataLength.
Он живой: дышит и зависит от множества факторов. :)
Можно сделать дамп MFT размера ValidDataLength и
попробовать прочитать его по-записно. До "поджвижки" я не находила
"нечитаемых" записей, даже 10-14 читаемы.
Исключение состовляли некоторые номерами ~ 16-23 и только на дисках
где размер записи превышал размер кластера. (И такие бывают :)
После "подвижки" я получила кучу нечитаемых записей в конце ValidDataLength,
идущих подряд. Но это ерунда.
Кому придет в голову проверять все записи на читаемость. :)
Хуже другое. Когда Windows создает новые файлы/директории, она записывает
их в эти нечитаемые записи(пока они не кончатся).
Во всяком случае, мы получаем новые ссылки именно туда.
Так вот: прямыми средствами (ReadFile) их корректно считать не удается(читаем мусор).
IoControlDevice это как-то делает, но как, я (пока) не разобралась.
Такие вот наблюдения...
Выводы почему и отчего так получается "оставлю заинтересованным лицам" (с) DelphiMaster :)


 
Riply ©   (2007-08-14 06:07) [82]

>[70] ZMRaven ©   (09.08.07 14:06)
>[73] Vendict ©   (10.08.07 15:18)

Отправила.
Надеюсь, что сумела добавить новых ошибок меньше, чем исправила найденых :)

P.S.
С красненькими строчками, лучше не возвращайтесь :)


 
{RASkov} ©   (2007-08-14 09:18) [83]

> [82] Riply ©   (14.08.07 06:07)

Я тут все порываю себя переустановить себе систему.... но все как-то руки не доходят. Может твоя утилита поможет мне.... Шутка.
Все ждал когда же выложишь на всеобщий тест..... кинь и мне что-ли хочется посмотреть, что за "зверя" делаешь :)
Если решишь бросить, то в адресе скобок не нужно.... адрес в этом посте в нике.


 
Riply ©   (2007-08-14 13:56) [84]

>[83] {RASkov} ©   (14.08.07 09:18)
Ну ради такого важного дела, как переустановка системы - выслала. :)

>Все ждал когда же выложишь на всеобщий тест
Если бы ты знал как я радовалась, что не сделала этого (не выложила на всеобщий тест),
когда мне возвращали отчеты с ошибками :)


 
Vendict ©   (2007-08-14 14:34) [85]

Riply ©   (14.08.07 6:07) [82]
С красненькими строчками, лучше не возвращайтесь :)


а с розовыми что делать ?

правда есть ещё красная. "Устройство не готово". правда по щелчку всё открыла.

на виртуалках я думаю смысла тестить нет. на серваке: в одной папке всё розовое. папка Program Files от той операционки, что 2к (в данный момент загружен сервак, как уже говорил, на компе 2к и 2к3 стоит). в остальных папках всё нормально.
зато теперь в серваке DirectCopy работает )

PS. и договаривались на 7z... хотя 30к не выйгрышь ...


 
Vendict ©   (2007-08-14 14:39) [86]

ах да, забыл.
по тому же адресу всего один файлик 1.png
и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
может это ему надо спасибо за розовое говорить.


 
Riply ©   (2007-08-14 14:51) [87]

> [85] Vendict ©   (14.08.07 14:34)
>а с розовыми что делать ?
Это мне разбираться, почему я один и тот-же объект получаю дважды :)
Хотя, вроде, отсеиваю записи, которые не являются "основными".
Можешь выложить SnapShort розовых ?
>как уже говорил, на компе 2к и 2к3 стоит
Может мне на это стоит обратить внимание ?

>правда есть ещё красная. "Устройство не готово". правда по щелчку всё открыла.
Это она послала запрос и, сразу не получив ответа, заявила, что мол "не готово" :)

>зато теперь в серваке DirectCopy работает
:) Он может скопировать файл, вообще к нему не обращаясь :)

>PS. и договаривались на 7z... хотя 30к не выйгрышь ...
Извини, забыла.


 
Riply ©   (2007-08-14 14:54) [88]

> [86] Vendict ©   (14.08.07 14:39)
>ах да, забыл.
>по тому же адресу всего один файлик 1.png
Запостила и увидела твой ответ. Побежала смотреть.
>и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
>может это ему надо спасибо за розовое говорить.
Я тоже опасаюсь, что "работа" Acronis-а отличается от "работы" МП  :)


 
Riply ©   (2007-08-14 15:01) [89]

> [86] Vendict ©   (14.08.07 14:39)
>по тому же адресу всего один файлик 1.png
Что-то у меня не открывает. Говорит страница не найдена :(


 
Vendict ©   (2007-08-14 15:47) [90]

Riply ©   (14.08.07 15:01) [89]
Что-то у меня не открывает. Говорит страница не найдена :(


я просто отвлёкся... старые удалил а новый не скопировал. теперь та страница есть.


 
Vendict ©   (2007-08-14 15:49) [91]

Riply ©   (14.08.07 14:54) [88]
>и ещё. тот раздел неоднократно поднимался Acronis True Imag"ом.
>может это ему надо спасибо за розовое говорить.
Я тоже опасаюсь, что "работа" Acronis-а отличается от "работы" МП  :)


я имел ввиду копирование раздела из back"up-а.


 
Riply ©   (2007-08-14 15:55) [92]

> [90] Vendict ©   (14.08.07 15:47)
>я просто отвлёкся... старые удалил а новый не скопировал. теперь та страница есть.
Увидела.
Что я дважды получаю объект, это я поняла сразу,
но то что дважды считываю одну и ту же запись(все адреса одинаковы),
это (на настоящий момент) выше моего понимания :)


 
Riply ©   (2007-08-14 15:58) [93]

> [91] Vendict ©   (14.08.07 15:49)
>я имел ввиду копирование раздела из back"up-а.
Объясни мне пожалуйста "на пальцах" механизм работы твоего "backup-а".
Где он располагается, как отслеживает изменения и тому подобное ?


 
{RASkov} ©   (2007-08-15 00:49) [94]

> [84] Riply ©   (14.08.07 13:56)
> Ну ради такого важного дела, как переустановка системы -
> выслала. :)

Спасибо :) Побаловался.... система не падает, и так и не увидел красных полосох..... их где искать?
Вообще кроме черного и синих цветов больше никаких не наблюдал....
Данные на "винте" по большей части имеют атрибут "сжатый", но я специально разжимал папку, не большую - не маленькую, и на ней пробывал отдельно....
Один раз, не запомнил правда во время чего, вылезла вот такая штука....
---------------------------
Information
---------------------------
AttributeAttributeList are non resident !!!
---------------------------
ОК  
---------------------------
Я нажал ОК и всё дальше пошло ширстеть... :) Что это было?
И что значит Uninstall  в Абоуте? Т.е. значение этого слова я знаю, прога куда-то чего-то пишет? чтоб унъинсталится... Или можно просто грохнуть папку с прогой и все....?
Scan Displayed всегда дизаблено(недоступно) так же и в Recurse Scan > Scan MFT тоже всегда выключена....


 
Riply ©   (2007-08-15 01:10) [95]

> [94] {RASkov} ©   (15.08.07 00:49)
>Спасибо :) Побаловался.... система не падает, и так и не увидел красных полосох..... их где искать?
Они при ошибках сами "как прыгнут !" :)(с)

>Вообще кроме черного и синих цветов больше никаких не наблюдал....
Так программа должна себя вести в моих сладких девичих грезах :)

>Один раз, не запомнил правда во время чего, вылезла вот такая штука....
>AttributeAttributeList are non resident !!!
>Я нажал ОК и всё дальше пошло ширстеть... :) Что это было?
А вот это очень полезная информация !
Вычитала в одном месте, что AttributeAttributeList - список нерезидентных атрибутов,
который сам всегда резидентен. Но не поверила и оставила "кричалку": "Я не резидентен !" :)
Спасибо !

>И что значит Uninstall  в Абоуте? Т.е. значение этого слова я знаю, прога куда-то чего-то пишет?
>чтоб унъинсталится... Или можно просто грохнуть папку с прогой и все....?
Она хранит настройки в реестре. "Uninstall" просто чистит за собой

>Scan Displayed всегда дизаблено(недоступно) так же и в Recurse Scan >
Эти менюшки предназначены для тестирования "хитрых" цепочек. Просто надо знать как ими пользоваться.
Я их отключаю "на всякий пожарный"

>Scan MFT тоже всегда выключена....
Эту можно было и оставить :)


 
{RASkov} ©   (2007-08-15 01:24) [96]

> [95] Riply ©   (15.08.07 01:10)

$Extend
А вот это что такое? на каждом диске есть....
C:\$Extend
Там конечно расписано все в информации, но я там утоп в цифирках и буквиках :)


 
Riply ©   (2007-08-15 01:38) [97]

> [96] {RASkov} ©   (15.08.07 01:24)
>$Extend
>А вот это что такое? на каждом диске есть....
Это NTFS-овская системная директория, такая же как и другие $ - файлы и директории,
находящиеся в корне диска. Т.е. на них можно не обращать внимания.

>Там конечно расписано все в информации, но я там утоп в цифирках и буквиках :)
Но, надеюсь, основное вынес ? :)
А именно: "данный модуль предназначен только для поиска ошибок и никак не для работы".
Рабочий вариант (несущий пользу людям) сделаем, когда пройдем все испытания :)

Пока идет тестирование, я вывожу все без какого либо фильтра.
Потом буду убирать "лишнее".


 
Riply ©   (2007-08-15 01:44) [98]

>[97] Riply ©   (15.08.07 01:38)
Синим цветом помечены файлы "недоступные" для API.
Кто к ним причисляется написано в "инструкции".


 
{RASkov} ©   (2007-08-15 02:37) [99]

> [98] Riply ©   (15.08.07 01:44)

Вот наверное, как бы важная, информация: Я никогда не пользуюсь всякими ПМ, Акрониксами и иже с ними...
Может поэтому у меня "все гладко" :) Только я не совсем(или совсем не) понял про AttributeAttributeList (
И вот >В WinAPI ListBox <-из хелпа
Это тот который левый, а > MFT ListBox - это который справа?
А в общем по программе - здорово! Молодец!
ЗЫ Главное - закрывается без ошибок ;)


 
{RASkov} ©   (2007-08-15 02:38) [100]

> [99] {RASkov} ©   (15.08.07 02:37)
> > [98] Riply ©   (15.08.07 01:44)

Т.е. это не к [98] посту, а в общем :)


 
Riply ©   (2007-08-15 11:22) [101]

>[91] Vendict © (14.08.07 15:49)
>я имел ввиду копирование раздела из back"up-а.
>[92] Riply © (14.08.07 15:55)
>Что я дважды получаю объект, это я поняла сразу,
>но то что дважды считываю одну и ту же запись(все адреса одинаковы),
Кажется начинаю догадываться в чем может быть дело.
Если у директории создать довольно много отнюдь непустых потоков,
то MFT будет вынуждена создать для нее AttributeAllocationList,
в который может поместить AttributeIndexAllocation и (или) AttributeIndexRoot.
Видимо, причина по которой мы дважды получаем ссылки на один и тот же объект в этом.
Т.е. потенциально имеем три места (еще резидентные атрибуты)
откуда нас могут послать на одну и ту же запись :)
Возможно, что твой backup совсем не скупится на новые потоки в директориях :)
Попробую сэмулировать подобную ситуацию у себя на компьютере.

>[99] {RASkov} © (15.08.07 02:37)
>Вот наверное, как бы важная, информация:
>Я никогда не пользуюсь всякими ПМ, Акрониксами и иже с ними...
>Может поэтому у меня "все гладко" :)
Как бы было здорово, если бы все поступали так же !
Потестил программу у себя и есть уверенность, что она будет работать где угодно :)
Эх. мечты...мечты :)

>ЗЫ Главное - закрывается без ошибок ;)
Над этим скользким моментом была проведена огромная работа :)


 
Riply ©   (2007-08-15 11:25) [102]

> [101] Riply ©   (15.08.07 11:22)
>Если у директории создать довольно много отнюдь непустых потоков,

Имеются ввиду файловые потоки у объекта типа "директория"


 
Vendict ©   (2007-08-15 12:41) [103]

ситуация становится очень интересной.

начну с самого начала.
раздел был сдвинут немного вперёд и уменьшен в размере.
спустя некоторое время форматировался быстрым форматированием (интересно, при быстром форматированиии что становится с MFT?) в ntfs при установке сиситемы. после этого была установлена система и необходимые программы/обновления. после этого благополучно отправлен образ раздела в backup.
я думаю сохранение и восстановление происходит следующим образом:
сохранение: по сути наверняка сохраняется только побайтовый образ информации, хранящийся на разделе.
восстановление: восстанавливается этот побайтовый образ.
т.е. информация о разиении диска на разделы в backup"e врядтли содержится.
//это всё IMHO по поводу сохранения/востановления. сильно не пинайте.

далее. 2й вариант программы(предидущий) на том разделе красным выделяет только те папки(интересно, почему только папки...) которые были добавлены после восстановления (соответственно они появились в папке "Program Files" ). последний вариант программы красным ничего не выделяет, зато вся папка Program Files розовая.


 
Riply ©   (2007-08-15 13:14) [104]

>[103] Vendict ©   (15.08.07 12:41)
>2й вариант программы(предидущий) на том разделе красным выделяет только те папки(интересно, почему только >папки...) которые были добавлены после восстановления (соответственно они появились в папке "Program Files").
Выделяет только папки потому, что смещения на них я получаю из "родителя",
который ни сном ни духом об изменениях :).
А смещения на файлы я уже высчитываю относительно этих "новых папок".
P.S. 2й вариант программы можно выбросить :)

>последний вариант программы красным ничего не выделяет, зато вся папка Program Files розовая.
Это гораздо лучше :)
У нас нет ошибок чтения и адресации.
Просто мы столкнулись с ситуацией, когда из разных мест идут ссылки на один
и тот же объект. Это решаемо (надеюсь).

Ты можешь отправить мне ErrorLog файл (MFT_Scan....) из последней программы ?
Только почисти его и после этого вызови "Informatiоn" для директории Program Files.
Хорошо ?


 
Vendict ©   (2007-08-15 13:23) [105]

Riply ©   (15.08.07 13:14) [104]
Ты можешь отправить мне ErrorLog файл (MFT_Scan....) из последней программы ?
Только почисти его и после этого вызови "Informatiоn" для директории Program Files.
Хорошо ?


если это тот, чтьо появляется в папке _DataDir, то послал уже.


 
Riply ©   (2007-08-15 14:57) [106]

>[105] Vendict ©   (15.08.07 13:23)
>если это тот, чтьо появляется в папке _DataDir, то послал уже.
Получила.
Изучила.
Создала объект с такими же свойствами, как и у тебя.
Сумела воспроизвести твою ошибку.

Вот уж не знала:
Оказывается от того, что твоя программа выдала ошибку, можно получить столько удовольствия ! :)


 
GuAV ©   (2007-08-15 16:02) [107]

Приветствую.
Я вот сейчас тоже с MFT пытаюсь работать.

Пара вопросов:

1. Ты обрабатываешь ситуацию, кода в первой записи MFT (которая описывает саму MFT) есть $ATTRIBUTE_LIST (0x20), и $DATA
(0x80), содержаяся в первой записи MFT описывает только часть MFT (только первые 16 записей) (тогда остальные $DATA попадают в рекорды №№ 15..12)  ?
Ситуация реальная для силньо фрагментированных дисков.
2. Если атрибуты поместились в один файл-рекорд (не важно, резидентно или нет), то как их читать - понятно. Если есть атрибут $ATTRIBUTE_LIST но каждый из атрибутов поместился в какой-либо файл-рекорд - с этим тоже понятно.
Но если атрибут не поместился в один файл рекорд, то как можно отличить в разных файл рекордах находится ли куски одного атрибута или разные атрибуты ?


 
guav ©   (2007-08-15 16:07) [108]

PS: Майкрософт недавно добавили немного информации по этому в MSDN, там не все нужные структуры, и некоторые используемые поля структур помечены как reserved, но хоть какая инфа http://msdn2.microsoft.com/en-us/library/bb470206.aspx


 
guav ©   (2007-08-15 16:33) [109]


> А вот это очень полезная информация !
> Вычитала в одном месте, что AttributeAttributeList - список
> нерезидентных атрибутов,

Бывает и нерезиднетным, причём тот что в MFT тоже :) Вообще зачем проверять на (не)резидентность, если ты только читаешь данные, удобнее считать что каждый м.б. нерезидентным.

Кстати, могу потестить что там у тебя на домашней машине и на нескольких виртуальных, как найдётся время. Format("%s@%s.%s", ["guav", "ukr", "net"]) .


 
Riply ©   (2007-08-16 01:57) [110]

> [107] GuAV © (15.08.07 16:02)
>Приветствую.
>Я вот сейчас тоже с MFT пытаюсь работать.
Ну наконец-то ! И где ж тебя все это время носило ? :)
Я уж решила, что здесь все "слушаются старших" и я одна такая "стукнутая" :)

>Пара вопросов:
Нет. Это у меня тысяча и один вопрос :)

>1. Ты обрабатываешь ситуацию, кода в первой записи MFT (которая описывает саму MFT)
>есть $ATTRIBUTE_LIST (0x20), и $DATA (0x80), содержаяся в первой записи MFT описывает только часть MFT
>(только первые 16 записей) (тогда остальные $DATA попадают в рекорды №№ 15..12) ?
>Ситуация реальная для силньо фрагментированных дисков.
На настоящий момент я придерживаюсь такой политики: идти туда, куда тебя послали.
(На "рекорды №№ 15..12" меня еще не посылали, но как пошлют, так сразу пойду :)
Т.е. сейчас у меня закоментированы все проверки "разумности" диапазонов LCN
И эта политика себя оправдывает. Много ошибок в алгоритмах выявлено с ее помощью.
А ты воочию видел такую ситуацию (ссылку на рекорды 15..12) ?
Потому что мое imho, что если пользователь и доведет систему до того, что ей понадобяться
эти записи, то она скорее фрагментирует данные и поместит их часть в другое место,
отличное от этих рекордов. Иначе пропадает всякий смысл "резервирования на будущее".

>2. Если атрибуты поместились в один файл-рекорд (не важно, резидентно или нет), то как их читать - понятно.
>Если есть атрибут $ATTRIBUTE_LIST но каждый из атрибутов
>поместился в какой-либо файл-рекорд - с этим тоже понятно.
>Но если атрибут не поместился в один файл рекорд, то как можно отличить
>в разных файл рекордах находится ли куски одного атрибута или разные атрибуты ?
Не поняла вопроса.
Тебя интересует как в одном (выдранном из контекста) файл рекорде можно определить
содержит он целый атрибут или его кусок ? Imho, в общем случае - никак.
Но если есть возможность пойти по ссылке BaseFileRecord,
то уже в базовом рекорде можно выяснить, что именно содержит исходный рекорд.

>PS: Майкрософт недавно добавили немного информации по этому в MSDN, там не все нужные структуры,
>и некоторые используемые поля структур помечены как reserved,
>но хоть какая инфа http://msdn2.microsoft.com/en-us/library/bb470206.aspx
Сходила, посмотрела:
Да... В щедрости на информацию Майкрософт обвинить сложновато :)

>Кстати, могу потестить что там у тебя на домашней машине и на нескольких виртуальных, как найдётся время.
Это было бы здорово.
Как только исправлю очередную порцию ошибок
(вот их мне щедро возвращают в отчетах :), так сразу вышлю.
Хорошо ?

P.S.
Давай для обсуждения вопросов, связанных с MFT, создавать новые ветки ?
В эту, наверное, очень мало кто заходит.
А новых ветках шансы, что еще кто-нибудь поможет ответом будут повыше :)


 
guav ©   (2007-08-16 13:26) [111]


> А ты воочию видел такую ситуацию (ссылку на рекорды 15..
> 12) ?

Видел ссылку на 15. Про использование остальных - не помню, где видел инфу, но подозреваю, что если и 15ого не хватит, то и они будут использованы.


> Потому что мое imho, что если пользователь и доведет систему
> до того, что ей понадобяться
> эти записи, то она скорее фрагментирует данные и поместит
> их часть в другое место,
> отличное от этих рекордов. Иначе пропадает всякий смысл
> "резервирования на будущее".


Ситуация такая:
В рекорд $MFT  (0) не помещается его аттрибут DATA целиком. Тогда туда пишется атрибут  DATA, описывающий кусок MTF на 16 файлов. Таким образом, продолжения атрибута DATA для MFT, по которым можно восстановить полный должны быть именно среди 1ых 16и рекордов.

Я располагаю дампами таких $MFT рекордов, в обоих $DATA описывает кусок MFT на 16 записей, в одном $ATTRIBUTE_LIST резидентен, и видна ссылка на рекорд 15.

Резервирование же на будущее не нужно, новые файлы будут помещены в папку $Extend. Те рекорды видимо зарезервированы именно для мультирекордного MFT.


> Не поняла вопроса.

Вот у меня есть базовый рекорд, все рекорды куда он ссылается и атрибу-лист базового рекорда.
Допустим в атрибут-листе есть атрибут 0х80 в нескольких файл-рекордах, и атрибут 0х30 в нескольких файл рекордах. Как понять, что все эти 0х80 - куски одного аттрибута, а 0х30 - именно разные аттрибуты ?


> В щедрости на информацию Майкрософт обвинить сложновато
> :)

Кстати, какие у тебя источники информации ?


> Давай для обсуждения вопросов, связанных с MFT, создавать
> новые ветки ?

А смысл ?


 
Riply ©   (2007-08-16 18:42) [112]

>[111] guav © (16.08.07 13:26)
>Вот у меня есть базовый рекорд, все рекорды куда он ссылается и атрибу-лист базового рекорда.
>Допустим в атрибут-листе есть атрибут 0х80 в нескольких файл-рекордах,
>и атрибут 0х30 в нескольких файл рекордах.
>Как понять, что все эти 0х80 - куски одного аттрибута, а 0х30 - именно разные аттрибуты ?
Что-то я туплю. Опять плохо поняла проблемму :(
Ты пишешь оду универсальную процедуру для обработки всех (или почти всех)
типов атрибутов в атрибут-листе ?
У меня для разных(не для всех) типов - разная обработка.
Общее одно:
Я сначала получаю весь RunArray атрибута.
Т.е. при парсинге RunArray-я, я не отправляюсь по LCN сразу по мере их получения,
а записываю их в структуру. Заполнив ее, убеждаюсь в ее валидности, и заодно
получаю доп. информацию примерно так:
(HighVcn, LowVcn, DataSize - параметры атрибут-лист структуры, ClusterShl - "кластерный сдвиг")
RunLcn := HighVcn - LowVcn;
if DataSize > 0 then
begin
 max_cluster := (((DataSize + (1 shl ClusterShl)) - 1) shr ClusterShl) - 1;
 if RunLcn <> 0 then
  if RunLcn < max_cluster then
   begin // тут заполняю свою подструктуру
    pTmp._Fill(vcn_, LCN_RL_NOT_MAPPED, max_cluster - RunLcn);
    ......
   end
  else
   if RunLcn > max_cluster then Exit;
 pTmp.lcn := LCN_ENOENT;
end;

Ненулевая разность max_cluster - RunLcn говорит нам о том, что обработанный тип атрибута
представляет собой не весь атрибут, а только его часть,
причем нехватает именно max_cluster - RunLcn кластеров,
которые находятся в каком-то другом рекорде.
А теперь, имея на руках эту "инфу" и подготовленные LCN-ы, можно по ним и прогуляться,
учитывая тип атрибута, для которого это считалось :)
Это то что тебя интересовало ?
Если да, то забудь все что я здесь понаписала и посмотри реализацию функции
"ntfs_mapping_pairs_decompress" у линуксоидов, т.к. это их искореженная методика :)

>Кстати, какие у тебя источники информации ?
Начинала с Неббета (его описания структур и легли в основу).
По крохам добавляла откуда только можно. Вроде был Новоуральский Университет - не помню.
Но основные, и самые качественные добавки, я сделала изучая ntfs-3g драйвер линуксоидов и
их документацию. (www.linux-ntfs.org)


 
guav ©   (2007-08-16 19:50) [113]

У меня вопрос в следующем: пусть у меня есть элемент атрибут листа с LowVCN 0 и HighVCN 1000, и элемент с LowVCN 1000 и HighVCN 2000, как понять что это тот же аттрибут ? Кроме типа нужно ещё что-то сопоставлять ? или записи того же аттрибута обязаны идти подряд ?


> Ты пишешь оду универсальную процедуру для обработки всех
> (или почти всех)
> типов атрибутов в атрибут-листе ?

Ну.. желательно )


 
Riply ©   (2007-08-17 08:04) [114]

>[112] Riply © (16.08.07 18:42)
Описка
>(HighVcn, LowVcn, DataSize - параметры атрибут-лист структуры, ClusterShl - "кластерный сдвиг")
Надо читать:
(HighVcn, LowVcn, DataSize - параметры NONRESIDENT_ATTRIBUTE структуры, ClusterShl - "кластерный сдвиг")
Sorry.

>[113] guav © (16.08.07 19:50)
>У меня вопрос в следующем: пусть у меня есть элемент атрибут листа с LowVCN 0 и HighVCN 1000,
>и элемент с LowVCN 1000 и HighVCN 2000, как понять что это тот же аттрибут ?
>Кроме типа нужно ещё что-то сопоставлять ?

IMHO, нужно еще сопоставлять как минимум имя. ("IMHO" даже можно убрать, imho :)
Я делала так:
Это один и тот же атрибут, если
1. Совпали типы
2. Оба "мульти-рекордные" (не то слово, но другое подобрать не получается)
3. Совпали имена (если два пустых имени, то совпали).

Но стоит обратить внимание на еще один параметр в атрибут-листе:
AttributeID: USHORT;
У Microsoft"a он помечен как Reserved и идет сразу после SegmentReference
(спасибо MSDN хотя бы за то, что у нас теперь будет общая терминология :)

Я его не использовала (возможно и зря).
Есть предположение, что AttributeID - уникален (в пределах одного листа)
для каждого "мульти-рекордного" атрибута.
Т.е. Если у двух "мульти-рекордных" атрибутов он совпал, то это один и тот же атрибут.
Все сказанное насчет AttributeID - только предположения и никак не проверялось.  

>или записи того же аттрибута обязаны идти подряд ?
Мое imho, что расчитывать на это не стоит.  
Об этом(обязаны или нет) знает только Microsoft, но молчит как партизан. :)

>> Ты пишешь оду универсальную процедуру для обработки всех (или почти всех)
>> типов атрибутов в атрибут-листе ?

>Ну.. желательно )
Молодец ! Я еще до этого не доросла :)

Пока у меня не только способы обработки могут отличаться, но еще
почти в каждой процедуре есть входной параметр Caller: DWord - указывающий
на то, кто нас вызвал :)


 
guav ©   (2007-08-17 12:01) [115]


> Есть предположение, что AttributeID - уникален (в пределах
> одного листа)
> для каждого "мульти-рекордного" атрибута.

Это предположение было и у меня. Нет, AttributeID в пределах файл-рекорда. В том самом случае с $ATTRIBUTE_LIST в MFT встоеный $DATA и остальные имеют разный AttributeID, несмотря на то что это куски того же атрибута. Т.о. AttributeID  не уникален в пределах файла.
Об том что AttributeID  уникален в пределах файл-pекорда свидетельствует наличие USHORT Reserved4 в FILE_RECORD_SEGMENT_HEADER, это на самом деле NextAttributeID, используемый при добавлении аттрибута в файл-рекорд для AttributeID добавляемого аттрибута.
Зачем используется этот AttributeID - мне безразлично. Факт что мне он полезной информации не даст, и, т.к. Майкрософт его "зарезервировали", я бы не стал без необходимости его применять.

> Молодец ! Я еще до этого не доросла :)

Ну... просто у меня не энтузиазм, а коммерческий проект, там всё должно быть сделано как можно лучше )


 
Riply ©   (2007-08-17 12:16) [116]

> [115] guav ©   (17.08.07 12:01)
Спасибо. Насчет AttributeID прояснилось. (Избавил меня от лишней работы :)

>Ну... просто у меня не энтузиазм, а коммерческий проект,
>там всё должно быть сделано как можно лучше )
"Как прикажешь тебя понимать, Сайд ?" (с)
Т.е. если энтузиазм, то это означает брак и халтуру ? :)


 
guav ©   (2007-08-17 12:46) [117]


> Т.е. если энтузиазм, то это означает брак и халтуру ? :)

Нет, это только означает что у меня есть требования к функциональности, качеству и срокам.

PS: Обновил анкету, если что - ICQ там.


 
guav ©   (2007-08-17 16:15) [118]


> Это один и тот же атрибут, если
> 1. Совпали типы
> 2. Оба "мульти-рекордные" (не то слово, но другое подобрать
> не получается)
> 3. Совпали имена (если два пустых имени, то совпали).


А ведь ты всё правильно делаешь.

смотрим в MSDN описание ATTRIBUTE_LIST_ENTRY

Remarks
The attributes list is an ordered list of quadword-aligned ATTRIBUTE_LIST_ENTRY structures. This list is ordered first by the attribute type code and then by the attribute name (if present). No two attributes can have the same type code, name, and lowest VCN. Therefore, there can be at most one attribute for each type code without a name.


 
Riply ©   (2007-08-18 19:06) [119]

>Vendict
>guav

Отправила очередную версию.
Самые плодовитые не кролики, а ошибки. Особенно в благоприятных условиях :)


 
Vendict ©   (2007-08-19 12:59) [120]

больше ошибок не обнаружил. только что при запуске DeviceOpen: "Устройство не готово".

картинка нужна ?



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.74 MB
Время: 0.059 c
2-1187609682
R.O.O.T
2007-08-20 15:34
2007.09.16
Вопрос!!!


6-1169653883
Hint
2007-01-24 18:51
2007.09.16
Как узнать соединен ли (активен ли) socket?


15-1187767489
\/iKTOR
2007-08-22 11:24
2007.09.16
Справочник обновлен


2-1187710522
Sonic90
2007-08-21 19:35
2007.09.16
Целое число


15-1187471647
timself
2007-08-19 01:14
2007.09.16
Помогите подобрать компонент… RTF-->HTML





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский