Самоучитель по программированию систем защиты


Глава 2


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



Начало    



Книжный магазин