Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - повышенная фрагментация сжатых файлов. Сжатие осуществляется блоками по 16 кластеров
Полезная возможность для людей, которые беспокоятся за свои секреты - каждый файл или каталог может также быть зашифрован, что не даст возможность прочесть его другой инсталляцией NT. В сочетании со стандартным и практически непрошибаемым паролем на загрузку самой системы, эта возможность обеспечивает достаточную для большинства применений безопасность избранных вами важных данных.
С Windows Vista появилась технология BitLocker, которая позволяет защищать данные путём полного шифрования диска(ов) (в терминологии Microsoft — тома(ов)). По умолчанию для шифрования используется алгоритм AES с 128-битным ключом. Сам ключ может храниться в TPM или в USB-устройстве. Данная технология позицируется как панацея от кражи данных.
Примерно в течение полугода после официального релиза Windows Vista появилась информация о взломе BitLocker.
Любая информация о файле, начиная с его имени, разрешений и заканчивая собственно данными, хранящимися в файле, с точки зрения NTFS представляет собой атрибут, хранящийся в собственном потоке (stream). Разработчики NTFS посчитали, что можно не ограничиваться одним потоком для данных – безымянным, и добавили возможность создания нескольких, помимо основного, именованных потоков. Для создания множественных потоков можно применить функцию Win32 API, но можно поступить и проще, с помощью перенаправления ввода-вывода:
Можно написать в любом компиляторе C++ такую программу(консольное Win32 приложение):
#include <iostream.h>
void main () {
char ch;
while (cin.get(ch)) cout.put(ch);
}
(внимание – рабоспособность кода не проверена)
Windows NT не предоставляет стандартных средств для получения информации о множественных потоках данных. Можно воспользоваться программой streams Марка Руссиновича (Mark Russinovich), которую вместе с исходным кодом можно взять на www.sysinternals.com. В этой программе для получения информации о множественных потоках данных используются недокументированные функции Windows NT.
WriteFile( hFile, "info in fork", 13, &dwRet, NULL );
CloseHandle(hStream);
return 0;
}
(внимание – рабоспособность кода не проверена)
На заре технологии OLE Microsoft предполагала использовать потоки данных для хранения информации о внедренных объектах, но видимо обеспечить потоки данных на FAT оказалось сложнее, чем создать длинные имена файлов и от этой идеи пришлось отказаться. Создание “файла ресурсов” для скрипта с хранением в нем всех надписей, выводимых на разных языках, также может быть интересной возможность применения потоков.