 
        
        - •Оглавление
- •1 Простейшее Win32 приложение
- •2 Функция WinMain
- •3 Оконный класс
- •4 Стили класса, стили окна
- •5 Создание экземпляра оконного класса
- •6 Динамические изменения свойств оконного класса
- •7 Обработка сообщений
- •8 Программирование клавиатуры
- •9 Коды oem, ansii, asci, виртуальные коды клавиш
- •10 Символьные сообщения
- •11 Обработка сообщений от мыши
- •12 Программирование таймера
- •13 Диалоговые окна
- •14 Структура шаблона диалога
- •14(А) Ресурсы диалога
- •15 Функции создания диалога
- •16 Взаимодействие между элементами управления
- •17 Сообщения, SendMessage, SendDlgItemMessage
- •18 Обработка сообщений от элементов диалога
- •19 Элемент «Слайдер» (Румянцев - Азбука программирования в Win32 api, c.148)
- •20 Элемент ProgressBar (Румянцев - Азбука программирования в Win32 api, c.156)
- •21 Bios (общие сведения)
- •22 Файлы (общие сведения)
- •23 Создание файла (Win32 api)
- •24 Операции с файлом (Win32 api)
- •25 Организация файлов
- •26 Файловые системы (общие сведения)
- •Создание файла.
- •Удаление файла.
- •28 Структура логического диска под fat12 (wfat)
- •29 Каталоги в fat12
- •30 Алгоритм определения расположения файлов на диске
- •31 Ф.С. Fat32 (отличительные особенности)
- •32 Изменение элементов системных объектов при выполнении copy
- •33 Ntfs (общие сведения)
- •34 Запись файла в mft
- •35 Метафайлы
- •36 Атрибуты записи файла
- •37 Изменение системных данных при выполнении copy
- •38 Изменение системных данных при выполнении del
- •39 Изменение системных данных при выполнении move
- •40 Процессы. Потоки. Общие сведения
- •41 Модель процесса
- •42 Контекст процесса
- •43 Дескриптор процесса
- •44 Создание процесса (общие сведения)
- •45 Окончание процесса (общие сведения)
- •46 Состояния процесса
- •47 Уровни планирования процессов
- •48 Диспетчеризация процессов
- •49 Класс приоритета процесса
- •50 Создание процесса (Win32 api)
- •51 Win32 Api. Управление процессами
- •52 Win32 Api. Окончание процесса
- •53 Среда процесса
- •54 Командная строка процесса
- •55 Наследование дочерними процессами ресурсов родителя
- •56 Список процессов
- •57 Время выполнения процесса
36 Атрибуты записи файла
Нам известно о существовании 14 атрибутов файла различного типа. Типы атрибута обозначается числами. Ниже мы перечислили атрибуты известных нам типов с кратким описанием хранящейся в них информации.
| Тип | Имя | Описание | 
| 0x10 | $STANDARD_INFORMATION | Стандартный атрибут. Здесь хранится дата и время создания и последнего изменения файла, дата и время последнего доступа к файлу, флаги доступа к файлу, а также дата и время изменения записи MFT, соответствующей данному файлу | 
| 0x20 | $ATTRIBUTE_LIST | Список атрибутов. Если помимо базовой записи MFT для файла создаются расширенные записи, в этом атрибуте перечисляются все атрибуты файла. Кроме того, здесь хранится информация о распределении этих атрибутов по записям MFT (по базовой записи и по расширенным записям данного файла). | 
| 0x30 | $FILE_NAME | Имя файла или каталога. В этом атрибуте хранится имя файла или каталога, набор флагов доступа, размер файла, а также ссылка на запись MFT каталога, в котором хранится данный файл или каталог. | 
| 0x40 | $VOLUME_VERSION | Версия NTFS для данного раздела. | 
| 0x50 | $SECURITY_DESCRIPTOR | Дескриптор разграничения доступа. | 
| 0x60 | $VOLUME_NAME | Имя тома. Это имя задается при форматировании раздела и может быть изменено пользователем. | 
| 0x70 | $VOLUME_INFORMATION | Состояние тома. Здесь хранится версия драйвера, с помощью которого был создан данный раздел, а также флаг программы CHKDSK. Если этот флаг установлен, то при очередной перезагрузке операционной системы программа CHKDSK выполнит проверку данного раздела. | 
| 0x80 | $DATA | Атрибут данных. Этот атрибут может содержать либо данные файла (если размеры файла не превышают размеры записи MFT), либо список номеров кластеров, в которых располагается файл (список экстентов файла). | 
| 0x90 | $INDEX_ROOT | Корневая вершина дерева типа B+, с применением которого в NTFS реализована система каталогов. | 
| 0xA0 | $INDEX_ALLOCATION | Узлы ветвей дерева типа B+, с применением которого в NTFS реализована система каталогов. | 
| 0xB0 | $BITMAP | Набор бит, описывающих использование отдельных записей MFT или узлов дерева каталогов. | 
| 0xC0 | $SYMBOLIC_LINK | Информация Reparse Point, используется в Microsoft Windows 2000 | 
| 0xD0 | $EA_INFORMATION | Информация о расширенных атрибутах файловой системы HPFS. Используется для обеспечения совместимости NTFS с файловой системой HPFS, применяемой в IBM OS/2. | 
| 0xE0 | $EA | Данные расширенных атрибутов файловой системы HPFS. | 
Для раскручивания цепочки атрибутов необходимо знать размер атрибута, смещение для первого атрибута а также уметь определить конец цепочки.
Точное смещение начала списка атрибутов хранится в слове заголовка записи MFT со смещением 0x14.
Каждый атрибут имеет свой заголовок, что первые четыре байта заголовка атрибута хранят его тип, а вторые - размер в байтах. Прибавляя к смещению атрибута его размер можно попасть на следующий атрибут, и так до тех пор, пока тип атрибута не станет равным FFFFFFFF, что означает конец цепочки.
