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

Вниз

Сортированность объектов, возвращаемых NtQueryDirectoryFile.   Найти похожие ветки 

 
Riply ©   (2007-11-17 14:39) [0]

Здравствуйте !
Эксперименты (их было довольно много) показывают, что
NtQueryDirectoryFile при вызове с параметрами:
FileDirectoryInformation, ReturnSingleEntry = False и RestartScan = True,
возвращает объекты, уже отсортированные по имени. (даже если возвращены не все)
Является ли это правилом, на котором можно строить расчет, или
когда луна окажется в созвездии Юпитера, порядок может быть нарушен ?
:)


 
engine ©   (2007-11-17 15:48) [1]

Подсказать не могу, но есть у меня ссылочка, может там найдешь ответ на свой вопрос:
ntinternals.net


 
Riply ©   (2007-11-17 16:23) [2]

> [1] engine ©   (17.11.07 15:48)
> Подсказать не могу, но есть у меня ссылочка,
> может там найдешь ответ на свой вопрос: ntinternals.net

Спасибо.
К сожалению, там я смогла найти только "общую" информацию. :(


 
guav ©   (2007-11-17 16:24) [3]

> Эксперименты (их было довольно много) показывают,

Ограничивались ли они чисто NTFS ?
Мне кажется, что это специфика NTFS, где папки это файлы содержашие индексы по именам содержащихся в них файлов. На FAT, где папки - это файлы, содержащие сами записи о папках и файлах, я думаю это вернёт записи в порядке расположения записей (этот порядок не определён, более того, фактическая реализация его различна в разных системах). Ну и у других ФС возможно будет своя специфика.

Может стоит пренеберчь оверхедом на сортировку ? Уже отсортированный список - идеальный для QuickSort случай. Само сравнине имён чисто uppercase-посимвольное, и потому тоже не очень медленное. Имхо самое затратное тут - само чтение объектов с диска.

PS: Я бы советовал RTFM http://msdn2.microsoft.com/en-us/library/ms801001.aspx и никакой "отсебятины".


 
Riply ©   (2007-11-17 16:38) [4]

> [3] guav ©   (17.11.07 16:24)
> Ограничивались ли они чисто NTFS ?

Пока да. Вечером смогу проверить на FAT32 (правда она мне не очень интересна :).

> Может стоит пренеберчь оверхедом на сортировку ? Уже отсортированный список - идеальный для QuickSort случай.
> Само сравнине имён чисто uppercase-посимвольное, и потому тоже не очень медленное.

Нверное, ты прав. Будем сортировать. Правда было бы очень заманчиво считать,
что уже отсортировано, особенно, когда получаешь только часть объектов из-за нехватки буфера
(может статься, что следующий вызов и не понадобиться :).

> PS: Я бы советовал RTFM http://msdn2.microsoft.com/en-us/library/ms801001.aspx
Там я начинала знакомство с этой ф-ией :)

> и никакой "отсебятины".
Это как это "никакой отсебятины" ? Инициативу душим в корне ? :)


 
guav ©   (2007-11-17 16:54) [5]

> [4] Riply ©   (17.11.07 16:38)
> (правда она мне не очень интересна :).

Тогда твой вопрос есть вопрос о реализации этой ф-ции драйвером NTFS и не пытайся искать ответ в информации о NtQueryDirectoryFile вообще. Что именно искать и где искать я не скажу, я не знаю, как работают подключаемые драйверы файловых систем. Но подозреваю что у тебя всего два варианта: 1. NtQueryDirectoryFile + отладчик. 2. Глянуть как там в ReactOS  (но потом обязательно проверить через вариант 1 :)


 
Riply ©   (2007-11-17 17:04) [6]

> [5] guav ©   (17.11.07 16:54)
> 2. Глянуть как там в ReactOS  (но потом обязательно проверить через вариант 1 :)

Да уж. После той истории с RemoveDirectory, мое мнение о ReactOS,
как о палочке-выручалочке, сильно пошатнулось :)



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

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

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1195667957
vegarulez
2007-11-21 20:59
2007.12.16
Вопрос про создание БД Access+Tables в одним действием.


6-1175878531
redlord
2007-04-06 20:55
2007.12.16
саморекурсия процедуры ClientSocket1Read


3-1187016660
ChaoX
2007-08-13 18:51
2007.12.16
Как заставить TDBImage понимать jpeg и


4-1180097579
buben
2007-05-25 16:52
2007.12.16
Замена буфера обмена


15-1195504748
turbouser
2007-11-19 23:39
2007.12.16
Студенты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский