Книга: Восстановление данных. Практическое руководство
Энумерация потоков
Энумерация потоков
Как определить, что за потоки содержатся внутри файла? Штатными средствами операционной системы сделать это невозможно. Функции для работы с потоками не документированы и доступны только через Native API. Вот эти функции: NtCreateFile
, NtQueryEaFile
и NtSetEaFile
. Их описание можно найти в следующей книге: "The Undocumented Functions Microsoft Windows NT/2000" by Tomasz Nowak. Электронную копию этой книги можно бесплатно скачать по следующему адресу: http://undocumented.ntinternals.net/title.html. Кроме того, рекомендуется прочесть статью "Win2k.Stream" из 5-го номера вирусного журнала #29А, да и другие журналы пролистать не мешает.
Создание нового потока осуществляется вызовом функции NtCreateFile
, среди прочих аргументов принимающей указатель на структуру FILE_FULL_EA_INFORMATION
, передаваемый через EaBuffer
. Можно также воспользоваться функцией NtSetEaFile
, передав ей дескриптор, возращенный функцией NtCreateFile
, открывающей файл обычным образом. Перечислением (и чтением) всех имеющихся потоков занимается функция NtQueryEaFile
. Прототипы всех функций и определения структур содержатся в файле NTDDK.H, в котором присутствует достаточное количество комментариев, позволяющее заинтересованному читателю самостоятельно разобраться в данном вопросе.
- Достоинства и недостатки потоков
- 4.3 Потоковый редактор sed
- Множество потоков, соревнующихся между собой за обладание единственным ресурсом
- Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL
- Необходимость в синхронизации потоков
- 26.5. Собственные данные потоков
- Объекты синхронизации потоков
- Реализация потоков в ядре Linux
- Приоритеты потоков
- Предотвращение перегруженности: для чего нужны несколько потоков
- Запуск дочерних консольных приложений и команд DOS, использование их входных и выходных потоков
- ГЛАВА 8 Синхронизация потоков