Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: CL | DM;

Вниз

Сортированность объектов, возвращаемых 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-1186917248
kirik
2007-08-12 15:14
2007.12.16
проблема с dbf (dbase4) при чтении текстовых полей.


15-1195017660
Fin
2007-11-14 08:21
2007.12.16
Запуск программ без цифровой подписи в Viste.


15-1195478229
Petr V. Abramov
2007-11-19 16:17
2007.12.16
А что такое агрегация?


8-1170999683
Belkam
2007-02-09 08:41
2007.12.16
Слайд шоу


15-1195079505
Германн
2007-11-15 01:31
2007.12.16
Самое приятное и интересное воспоминание