
- •Министерство образования и науки Российской Федерации
- •Лекция 1. Введение.
- •Лекция 2. Структура подсистемы обмена с ву
- •Лекция 3. Регистры ву
- •3.1. Виды регистров внешних устройств
- •3.2. Виды адресации регистров ву
- •Лекция 4. Алгоритм обмена без прерываний
- •37Bh – не используется
- •Лекция 5. Прерывания
- •5.1. Механизм прерываний
- •5.2. Таблица векторов прерываний
- •Лекция 6. Изменения установок обработки прерываний
- •6.1. Маскирование прерываний
- •6.2. Изменение таблицы векторов прерываний
- •6.3. Обработчики прерываний
- •Лекция 7. Аппаратные прерывания
- •Лекция 8. Дисковые системы (Часть 1) Организация магнитного диска
- •Лекция 9. Дисковые системы (Часть 2) Функции bios для работы с дисками
- •Инициализация контроллера нмд
- •Лекция 10. Файловые системы (Часть 1)
- •Организация логического диска
- •Лекция 11. Файловые системы (Часть 2)
- •Файловые системы Windows
- •Лекция 12. Файловая системаntfs Главная файловая таблица
- •Последовательность обновления
- •Атрибуты
- •Типы атрибутов
- •Лекция 13. Атрибуты ntfs
- •Списки отрезков
- •Лекция 14. Анализ и восстановление файловой системы
- •Лекция 15. Управление памятью
- •Типы адресов
- •Методы распределения памяти без использования дискового пространства
- •Лекция 16. Виртуальная память
- •Лекция 17. Виртуальная память (продолжение)
- •Лекция 18. Иерархия запоминающих устройств
- •Лекция 19. Управление вычислительными процессами
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Лекция 20. Синхронизация и взаимодействие процессов
- •V(b); /* Выход из критической секции */
- •Лекция 21. Архитектура драйвера файловой системы
- •Локальные fsd
- •Удаленные fsd
- •Работа файловой системы
- •Явный файловый ввод-вывод
- •Подсистема отложенной записи
- •Поток, выполняющий опережающее чтение
- •Драйверы фильтров файловой системы
- •Лекция 22. Windows api
- •Windows api— набор функций операционной системы
- •Лекция 23. WindowsApi(продолжение)
- •Окно рабочего стола
- •Приложение Windows
- •Компоненты окна приложения
- •Создание окна
- •Атрибуты окна
- •Класс окна
- •Имя окна
- •Стиль окна
- •Родитель или владелец окна
- •Расположение, размер и позиция в z-порядке
- •Идентификатор дочернего окна или дескриптор меню
- •Дескриптор копии приложения
- •Дополнительные данные
- •Дескрипторы окна
- •Создание главного окна
- •Сообщения, посылаемые при создании окна
- •Многопоточные приложения
- •Общие стили окна
- •Позиционирование
- •Взаимоотношения с родительским окном
- •Рамка окна
- •Компоненты неклиентской области окна
- •Заблокированное окно
- •Окна переднего плана и фоновые окна
- •Активное окно
- •Видимость
- •Свернутые, развернутые и восстановленные окна
- •Размер и позиция окна
- •Размер окна
- •Позиция окна
- •Размер и позиция по умолчанию
- •Системные команды
- •Сообщения, связанные с размером и позицией окна
- •Уничтожение окна
- •Как создать главное окно
- •Работа с дочерними окнами
- •Как уничтожить окно
- •Лекция 24. Ловушки сообщений (Хуки)
- •Лекция 25. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Типы атрибутов
NTFS поддерживает большое количество предопределенных типов атрибутов, перечисленных в табл. 12.4. Тип атрибута определяет его назначение и формат представления тела.
Таблица 12.4
Основные типы атрибутов
Значение |
ОС |
Условное обозначение |
Описание |
010h |
Любая |
$STANDARD_INFORMATTON |
Стандартная информация о файле (время, права доступа) |
020h |
Любая |
$ATTRIBUTE_LIST |
Список атрибутов |
030h |
Любая |
$FILE_NAME |
Полное имя файла |
040h |
Windows NT |
$VOLUME_VERSION |
Версия тома |
040h |
Windows 2000 |
$OBJECT_ID |
GUID (Глобально уникальный идентификатор) и прочие ID |
050h |
Любая |
$SECURITY_DESCRIPTOR |
Дескриптор безопасности и списки прав доступа (ACL) |
060h |
Любая |
$VOLUME_NAME |
Имя тома |
070h |
Любая |
$VOLUME_INFORMATION |
Информация о томе |
080h |
Любая |
$DATA |
Основные данные файла |
090h |
Любая |
$INDEX_ROOT |
Корень индексов |
0A0h |
Любая |
$INDEX_ALLOCATION |
Ветви (sub-nodes) индекса |
0B0h |
Любая |
$BITMAP |
Карта свободного пространства |
0C0h |
Windows NT |
$SYMBOLIC_LINK |
Символическая ссылка |
0C0h |
Windows 2000 |
$REPARSE_POINT |
Для сторонних производителей |
0D0h |
Любая |
$EA_INFORMATION |
Расширенные атрибуты для HPFS |
0E0h |
Любая |
$EA |
Расширенные атрибуты для HPFS |
0F0h |
Windows NT |
$PROPERTY_SET |
Устарело и ныне не используется |
100h |
Windows 2000 |
$LOGGED_UTILITY_STREAM |
Используется шифрующей файловой системой (EFS) |
Лекция 13. Атрибуты ntfs
$STANDARD_INFORMATION
Атрибут стандартной информации описывает время создания/изменения последнего доступа к файлу и права доступа, а также некоторую другую вспомогательную информацию (например, квоты). Структура атрибута стандартной информации кратко описана в табл. 13.1.
Таблица 13.1
Структура атрибута $STANDARD_INFORMATION
Смещение |
Размер |
ОС |
Описание | |
~ ~ |
|
Любая |
Стандартный атрибутный заголовок (standard attribute header) | |
00h |
8 |
Любая |
C – время создания (creation) файла | |
08h |
8 |
Любая |
A – время изменения (altered) файла | |
10h |
8 |
Любая |
M – время изменения файловой записи (changed) | |
18h |
8 |
Любая |
R – время последнего чтения (read) файла | |
20h |
4 |
Любая |
Права доступа MS-DOS (MS-DOS file permissions) | |
Значение |
Описание | |||
0001h |
Только на чтение (read-only) | |||
0002h |
Скрытый (hidden) | |||
0004h |
Системный (system) | |||
0020h |
Обновленный (archive) | |||
0040h |
Устройство (device) | |||
0080h |
Обычный (normal) | |||
0100h |
Временный (temporary) | |||
0200h |
Разреженный (sparse) файл | |||
0400h |
Точка передачи (reparse point) | |||
0800h |
Сжатый (compressed) | |||
1000h |
Оффлайновый (offline) | |||
2000h |
Неиндексируемый (not content indexed) | |||
4000h |
Зашифрованный (encrypted) | |||
24h |
4 |
Любая |
Старшее двойное слово номера версии | |
28h |
4 |
Любая |
Младшее двойное слово номера версии | |
2Ch |
4 |
Любая |
Идентификатор класса (class ID) | |
30h |
4 |
Windows 2000 |
Идентификатор владельца (owner ID) | |
34h |
4 |
Windows 2000 |
Идентификатор безопасности (security ID) | |
38h |
8 |
Windows 2000 |
Количество квотируемых байт (quota charged) | |
40h |
8 |
Windows 2000 |
Номер последней последовательности обновления (update sequence number USN) |
$ATTRIBUTE_LIST
Атрибут списка атрибутов используется в тех случаях, когда все атрибуты файла не умещаются в базовой файловой записи, и файловая система вынуждена располагать их в расширенных файловых записях. Индексы расширенных файловых записей содержатся в атрибуте списка атрибутов, помещаемом в базовую файловую запись.
Атрибуты не умещаются в одной файловой записи в следующих случаях:
файл содержит много альтернативных имен или жестких ссылок;
файл сильно фрагментирован;
файл содержит очень сложный дескриптор безопасности;
файл имеет очень много потоков данных (т. е. атрибутов типа $DATA). Структура атрибута списка атрибутов приведена в табл. 13.2.
Таблица 13.2
Структура атрибута $ATTRIBUTE_LIST
Смещение |
Размер |
Описание |
~ ~ |
|
Стандартный атрибутный заголовок (standard attribute header) |
00h |
4 |
Тип (type) атрибута (см. табл. 12.4) |
04h |
2 |
Длина записи (record length) |
06h |
1 |
Длина имени (name length), или ноль, если нет, условно – N |
07h |
1 |
Смещение имени (offset to name), или ноль – если нет имени |
08h |
8 |
Начальный виртуальный кластер (starting VCN) |
10h |
8 |
Ссылка на базовую/расширенную файловую запись |
18h |
2 |
Идентификатор атрибута (attribute ID) |
1Ah |
2N |
Если N > 0, то имя в формате UNICODE |
$FILE_NAME
Атрибут полного имени файла хранит имя файла в соответствующем пространстве имен. Таких атрибутов у файла может быть и несколько (например, имя Win32 и имя MS-DOS). Здесь же хранятся и жесткие ссылки (hard link), если они есть.
Структура атрибута полного имени приведена в табл. 13.3.
Таблица 13.3
Структура атрибута $FILE_NAME
Смещение |
Размер |
Описание |
~ ~ |
|
Стандартный атрибутный заголовок (standard attribute header) |
00h |
8 |
Ссылка (file reference) на материнский каталог |
08h |
8 |
C – время создания (creation) файла |
10h |
8 |
A – время последнего изменения (altered) файла |
18h |
8 |
M – время последнего изменения файловой записи (MFT changed) |
20h |
8 |
R – время последнего чтения (read) файла |
28h |
8 |
Выделенный размер (allocated size) файла |
30h |
8 |
Реальный размер (real size) файла |
38h |
4 |
Флаг (см. табл. 13.5) |
3Ch |
4 |
Используется HPFS |
40h |
1 |
Длина имени в символах – L |
41h |
1 |
Пространство имен файла (filename namespace) |
42h |
2L |
Имя файла в формате UNICODE без завершающего нуля |