Самоучитель по программированию систем защиты
Глава 2. Общая архитектура Windows NTОбщая архитектура Windows NT
Вытесняющая многозадачность (preemptive multitasking)
Виртуальная память с подкачкой страниц по требованию
Симметричная мультипроцессорная обработка
Интегрированная поддержка сети
Структура Windows NT
Общая архитектура ОС Windows NT
Защищенные подсистемы
Подсистемы среды
Подсистема среды Win32
Рисование (drawing). Например
Вызов системных сервисов через "родной" API. (ntdll.dll)
«Родной» API для ОС Windows NT (Native Windows NT API)
Неотъемлемые подсистемы
Исполнительная система (The Executive)
Исполнительная система (The Executive) - 2
Таблица 1. Подсистемы Исполнительной Системы NT и их предназначение
Диспетчер Объектов
Таблица 2. Типы объектов и подсистемы исполнительной системы, которые ими управляют
Понятия «пользовательский режим» и «режим ядра»
Система ввода/вывода
Ядро
Слой абстрагирования от оборудования
Система приоритетов
Система приоритетов
Уровни запросов прерываний (IRQL)
Приоритеты планирования
Динамические приоритеты и приоритеты реального времени
Базовый приоритет. Класс приоритета и относительный приоритет
Таблица 3. Классы приоритетов
Таблица 4. Относительный приоритет
Как используются IRQL
Таблица 5 представляет символические
Таблица 5. Символические и числовые определения IRQL
IRQL PASSIVE_LEVEL, APC_LEVEL и DISPATCH_LEVEL
Ограничения, налагаемые на код с уровнем IRQL большим или равным DISPATCHJLEVEL
DIRQLs
Прерывания и планирование
Определение текущего уровня IRQL
Организация памяти в защищенном режиме работы процессора
Иллюстрация
Некоторые понятия защищенного режима
Организация системного адресного пространства
Типы адресов в NT
Совместное использование памяти
Иллюстрация
Объект Секция
Функции работы с памятью
Выделение памяти
Список заранее выделенных блоков памяти (Lookaside List)
Пространства ввода/вывода и отображение памяти устройств
Управление памятью и MDL
Унифицированная модель драйвера
Объект-файл (файловый объект)
Объект-драйвер
Объект-устройство
Имя устройства и символическая связь
Основные характеристики Windows NT
Взаимосвязь основных объектов
Иллюстрация
Установка, удаление, запуск и установка драйвера
Точки входа драйвера
Контекст исполнения и уровень IRQL
Ограничения, налагаемые на драйвер
Точка входа DriverEntry
Определение конфигурации аппаратного устройства
Создание объекта-устройства и символической связи
Передача данных от приложения к драйверу. Асинхронная обработка
Иллюстрация
Выполнение асинхронного запроса
Характеристики подсистемы ввода/вывода
Структура пакета запроса ввода/вывода (IRP)
Поля в фиксированной части IRP
Поля в стеке размещения ввода/вывода IRP
Описание буфера данных
Таблица 6. Характеристики Прямого
Коды функции ввода/вывода
Модель модифицированного микроядра
Диспетчерские точки входа драйвера
Запросы чтения и записи IRP_MJ_READ и IRPJVLMVRITE
Пример обработки запросов чтения/записи
Запросы IRP_MJ_DEVICE_CONTROL и IRP^MJJNTERNA^DEVICE^CONTROL
Задание кода управления вводом/выводом (IOCTL)
Формат кода управления вводом/выводом
Получение буфера
Таблица 7
Пример обработки
Многоуровневая модель драйверов
Таблица 9 Объект синхронизации
Таблица доступна только из режима
Реализация уровневых драйверов
Объединение драйверов в стек
Обработка запросов IRP стеком драйверов
Получение драйвером вышележащего
Реализация драйверов-фильтров
Подключение фильтра к устройству
Сериализация
Задержка обработки запросов IRP и постановка запросов IRP в очередь
Системная очередь запросов IRP (System Queuing)
Обработка пакетов IRP в функции Startlo
Очереди, управляемые драйвером
Функции управления очередью низкого уровня
Функции управления очередью высокого уровня - «Очередь Устройства» (Device Queue)
Отмена запросов ввода/вывода
Отмена IRP и Системная Очередь
Отмена IRP и очереди, управляемые драйвером
Механизмы синхронизации
Спин-блокировки
Использование обычных спин-блокировок
Проблема взаимоблокировок (deadlocks)
Диспетчерские объекты
Таблица 8. Диспетчерские объекты
Ожидание (захват) диспетчерских
Семафоры
События
Быстрые мьютексы
Эмуляция нескольких ОС
Ресурсы Исполнительной системы
Обобщенная таблица механизмов синхронизации
Таблица 9
Необходимость в создании рабочих потоков
Системные рабочие потоки
Таблица 10. Число Системных Рабочих Потоков
Создание потоков драйвером
Потоки как диспетчерские объекты
Введение в обработку прерываний
Объекты - прерывания
описывает типичный
Отложенный вызов процедуры (Deferred Procedure Call, DPC)
Вначале ISR запрашивает
DPC-объекты Вызов DPC описывается
DPC на многопроцессорных системах
Характеристики Объекта DPC
Важность DPC (DPC Importance)
Таблица 11. Ситуации, инициирующие
Целевой процессор для DPC (DPC Target Processor)
DpcForlsr
Независимость от архитектуры процессора
Содержание раздела