Программирование драйверов Windows

Содержание


Рабочая процедура обработки IOCTL запросов - часть 4
Рабочая процедура выгрузки драйвера
Заголовочный файл Driver.h
Компиляция и сборка драйвера Example.sys
Файл Makefile
Файл Sources
Компиляция и сборка при помощи утилиты Build
Инсталляция и запуск драйвера Example.sys
Инсталляция внесением записей в Системный Реестр
Модификация Системного Реестра Windows 98
Модификация Системного Реестра Windows 2000, XP, Server2003
Запуск драйвера
Инсталляция с использованием INF файла
Инсталляция с использованием INF файла - часть 2
Инсталляция с использованием INF файла - часть 3
Инсталляция с использованием INF файла - часть 4
Инсталляция с использованием INF файла - часть 5
Инсталляция с использованием программы Monitor
Инсталляция с использованием сервисов SCM Менеджера
Приложение для тестирования драйвера Example.sys
Приложение для тестирования драйвера Example.sys - часть 2
Приложение для тестирования драйвера Example.sys - часть 3
Приложение для тестирования драйвера Example.sys - часть 4
Работа с драйвером Example.sys
Работа с драйвером Example.sys - часть 2
Работа с драйвером Example.sys - часть 3
Работа с драйвером Example.sys - часть 4
Заключение
Архитектура Windows NT 5. Введение
Цели разработки
Уровни аппаратных привилегий в Windows NT 5
Переносимость
Расширяемость
Производительность
Исполнительные компоненты
Интерфейс системных служб
Менеджер (диспетчер) объектов
Менеджер конфигурирования
Менеджер процессов
Менеджер виртуальной памяти
Средства локальных процедурных вызовов
Диспетчер (менеджер) ввода/вывода
Расширения базовой операционной системы
Расширения базовой операционной системы - часть 2
Подсистема Win32
Другие существенные компоненты операционной системы
Цели разработки подсистемы ввода/вывода
Типы драйверов Windows NT5
Типы драйверов Windows NT5 - часть 2
Типы драйверов Windows NT5 - часть 3
Типы драйверов Windows NT5 - часть 4
Типы драйверов Windows NT5 - часть 5
Специальные драйверные архитектуры
Отличия между версиями
Отличия между версиями - часть 2
Отличия между версиями - часть 3
Отличия между версиями - часть 4
Заключение
Прикасаясь к аппаратуре
Основные сведения об аппаратном обеспечении
Автоматическое распознавание и конфигурирование
Регистры устройств
Регистры устройств - часть 2
Доступ к регистрам устройств
Пространство ввода/вывода
Доступ через адресацию в памяти
Сигналы прерываний
Приоритеты прерываний
Векторы прерывания
Передача сигналов прерываний
Сродство к процессору
Механизмы передачи данных
Программируемый ввод/вывод
Прямой доступ к памяти
DMA операции с использованием системных контроллеров
Операции bus master DMA
Память, отведенная устройству
Ресурсы, используемые устройством
Шины в компьютерных системах
ISA: Industry Standard Architecture
EISA: Extended Industry Standard Architecture
PCI: Peripheral Component Interconnect
PCI: Peripheral Component Interconnect - часть 2
Доступ к регистрам
Механизмы прерываний
Механизмы прерываний - часть 2
Возможности DMA
Память, отведенная устройствам
Автоматическое распознавание и конфигурирование
Автоматическое распознавание и конфигурирование - часть 2
Автоматическое распознавание и конфигурирование - часть 3
IEEE 1394: Firewire Bus
Доступ к регистрам
Механизмы прерываний
Возможности DMA
Автоматическое распознавание и конфигурирование
USB: Universal Serial Bus
Доступ к регистрам
Механизмы прерываний
Возможности DMA
Автоматическое распознавание и конфигурирование
Шина PC Card (PCMCIA)
Доступ к регистрам
Механизмы прерываний
Возможности DMA
Автоматическое распознавание и конфигурирование
Советы по работе с аппаратурой
Архитектура шины
Регистры управления
Получение информации о состоянии устройства и об ошибках
Поведение, связанное с использованием прерываний
Механизмы передачи данных
Используйте интеллект нового устройства
Тестирование аппаратуры
Заключение
Контекст выполнения программного кода
Контекст исключения или внутреннего прерывания (trap)
Контекст прерывания
Контекст программного потока режима ядра
Приоритеты выполнения программного кода
Приоритеты выполнения программного кода - часть 2
Приоритеты выполнения программного кода - часть 3
Обработка прерываний
Прерывания, вызванные программно
Доступ к областям памяти пользовательских приложений
Способы доступа к буферным областям
Отложенные процедурные вызовы (DPC)
Функционирование DPC
Особенности механизма DPC
Особенности механизма DPC - часть 2
Общий взгляд на структуру драйвера режима ядра
Процедуры инициализации драйвера и очистки
Процедура DriverEntry
Процедура ре-инициализации
Процедура выгрузки Unload
Процедура Shutdown
Процедура обратного вызова Bugcheck
Рабочие процедуры обслуживания ввода/вывода
Обработчики запросов Open и Close
Процедуры передачи данных
Процедура StartIo
Процедура StartIo - часть 2
Процедура обслуживания прерываний
Процедуры DPC
Процедуры обратного вызова для синхронизации доступа к ресурсам
Процедура ControllerControl
Процедура AdapterControl
Процедуры SynchCritSection
Другие процедуры драйвера
Таймерные процедуры
Процедура IoCompletion
Процедура CancelRoutine
Последовательность обслуживания запросов ввода/вывода
Предварительная обработка Диспетчером ввода/вывода
Предварительная обработка в драйвере
Старт операции ввода/вывода
Процедура обслуживания прерываний ISR
Пост-обработка, выполняемая драйвером
Пост-обработка, выполняемая Диспетчером ввода/вывода
Заключение



Начало