Потоки NTFS

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
allo4la
Сообщения: 15
Зарегистрирован: 02 авг 2004, 11:48

Нужно получить список имен потоков в заданном файле.
К сожалению дальше
hFileInfo:=GetProcAddress(GetModuleHandle('ntdll.dll'),'NtQueryInformationFile');
ничего не могу придумать - там непонятные структуры и вобще никогда не приходилось работать с NativeAPI.
Помогите. Хотябы описанием структур.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

А что за "потоки NTFS"?
Как они в оригинале называются?

Какие конкретно структуры не понятны? Обычно windows.pas и messages.pas бывает достаточно для работы с WinAPI-шными структурами...
allo4la
Сообщения: 15
Зарегистрирован: 02 авг 2004, 11:48

Хм.. ну файловые потоки.
Если кто не в курсе - рассказываю:
Файловая система NTFS поддерживает файловые потоки, то есть есть файлы, и они могут содержать потоки. В потоках хранятся другие файлы. Обращаются к ним так: file.txt:file_in_stream. В потоках хрянится служебная информация, описания файлов, вирусы и прочие не очень полезные данные.
Создать поток можно с помощью обычного CreateFile('file.dat:stream'...); Также их можно легко править и читать. А вот для их перечисления стандартных API не существует. Поэтому приходится мучится с NtQueryInformationFile.
allo4la
Сообщения: 15
Зарегистрирован: 02 авг 2004, 11:48

Какие структуры не понятны?
Я не знаю, какие переметры передаются NtQueryInformationFile и что они значат.
Но я точно знаю, что эта функция возвращает полную информацию о файле, включая перечень потоков.
Ответить