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


         

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

Приемы программирования в режиме ядра
Дополнительные описатели типов
Квалификаторы IN, OUT, OPTIONAL

Типы возвращаемых значений функций
Соглашения об именах функций драйвера и системных вызовов
Операции с плавающей точкой
Операции с памятью
Операции с памятью - 2
Операции с памятью - 3
Операции с памятью - 4
Вызовы для выделения и освобождения областей виртуальной памяти
Вызовы для выделения и освобождения областей виртуальной памяти - 2
Работа с ассоциативными списками

Работа с ассоциативными списками - 2
Работа с ассоциативными списками - 3
Работа с ассоциативными списками - 4
Работа с MDL списками
Работа с MDL списками - 2
Работа с MDL списками - 3
Работа с MDL списками - 4
Работа с MDL списками - 5
Функции библиотеки времени выполнения для работы с памятью
Управление размещением кода драйвера в памяти

Определение размещения при компиляции
Динамическое перемещение кода драйвера в страничную память
Проблемы, возникающие при перемещении кода в страничную память
Фиксация страничных секций кода и данных в оперативной памяти
Проверка корректности вызовов кода, размещенного в страничной памяти
Операции над строками UNICODE_STRING
Операции над строками UNICODE_STRING - 2
Операции над строками UNICODE_STRING - 3
Операции над строками UNICODE_STRING - 4
Операции над строками ANSI символов

Операции над строками ANSI символов - 2
Функции для работы с файлами
Функции для работы с файлами - 2
Функции для работы с файлами - 3
Функции для работы с файлами - 4
Функции для работы со ссылками на объекты
Функции для работы со ссылками на объекты - 2
Функции для работы со ссылками на объекты - 3
Функции для работы с системным представлением времени
Функции для работы с Системным Реестром

Функции доступа к Системному Реестру, предоставляемые Диспетчером ввода/вывода
Функции RtlXxx прямого доступа к Системному Реестру
Функции RtlXxx прямого доступа к Системному Реестру - 2
Работа с Системным Реестром через вызовы ZwXxx
Работа с Системным Реестром через вызовы ZwXxx - 2
Работа с Системным Реестром через вызовы ZwXxx - 3
Заключение
Основные процедуры драйвера
Процедура DriverEntry
Процедура DriverEntry - 2

Процедура DriverEntry - 3
Процедура AddDevice
Процедура Unload
Процедура Unload - 2
Адресация и доступ к данным в IRP пакетах чтения/записи
Адресация и доступ к данным в IRP пакетах чтения/записи - 2
Рабочие процедуры драйвера
Пакеты IRР
Заголовок IRP
Ячейки стека ввода/вывода

Рабочие процедуры драйвера
Рабочие процедуры драйвера - 2
Набор рабочих процедур
Набор рабочих процедур - 2
Последовательность действий рабочих процедур
Случай 1: Ошибочная ситуация
Случай 2: Завершение работы над IRP запросом
Случай 3: Работа через очереди IRP пакетов
Рабочие процедуры обслуживания IOCTL запросов
Рабочие процедуры обслуживания IOCTL запросов - 2

Рабочие процедуры обслуживания IOCTL запросов - 3
Рабочие процедуры обслуживания IOCTL запросов - 4
Рабочие процедуры обслуживания IOCTL запросов - 5
При методе METHOD_BUFFERED
При методе METHOD_IN_DIRECT и METHOD_OUT_DIRECT
При методе METHOD_NEITHER
Обслуживание прерываний
Обслуживание прерываний - 2
Обслуживание прерываний - 3
Обслуживание прерываний - 4

Обслуживание прерываний - 5
Процедуры отложенного вызова обслуживания прерываний DpcForIsr
Выполнения кода процедуры DpcForIsr
Отключение от источника прерываний
Отключение от источника прерываний - 2
Заключение
Развитие спецификации Plug Первая | Иллюстрация Иллюстрация b> Иллюстрация | Последняя



Содержание