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


         

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

При выводе системных сообщений о прекращении работы (известные как bug-checks), выводятся также коды, по которым можно определить, что побудило систему запаниковать. В зависимости от ошибки, система сообщает до 4-х дополнительных параметров, которые дают дополнительную информацию о возникшей проблеме. Хотя полный перечень кодов можно найти в заголовочном файле bug-codes.h, входящий в пакет DDK, расшифровки значений там не приводится. По этой причине ниже приводятся наиболее часто встречающиеся коды, основные причины данных ситуаций и расшифровка дополнительных параметров. Данному вопросу посвящена статья Microsoft Knowledge Base Q103059.

Коды ошибочных ситуаций
Хотя полный перечень кодов можно найти в заголовочном файле bug-codes.h, входящий в пакет DDK, расшифровки значений там не приводится. По этой причине ниже приводятся наиболее часто встречающиеся коды, основные причины данных ситуаций и расшифровка дополнительных параметров. Данному вопросу посвящена статья Microsoft Knowledge Base Q103059.

Загрузка операционной системы
Подготовка к загрузке
Начальная стадия загрузки
Стадия загрузки
Распознавание оборудования
Выбор конфигурации
Загрузка ядра
Инициализация ядра
Вывод на экран информации о загрузке
Вывод на экран информации о загрузке - 2

Рабочая процедура выгрузки драйвера
При следовании WDM модели, драйвер должен был бы зарегистрировать обработчик PnP запросов (то есть IRP_MJ_PNP) и перед вызовом UnloadRoutine получал бы IRP пакеты с кодом IRP_MJ_PNP и суб-кодом IRP_MN_STOP_DEVICE (например, когда пользователь решил отключить устройство, воспользовавшись окном Диспетчера Устройств в Настройках системы). В этом обработчике и следует выполнять действия, предшествующие удалению WDM драйвера.

Заголовочный файл Driver.h
Компиляция и сборка драйвера Example.sys
Файл Makefile
Файл Sources
Компиляция и сборка при помощи утилиты Build
Инсталляция и запуск драйвера Example.sys
Инсталляция внесением записей в Реестр
Модификация Системного Реестра Windows 98
Модификация Реестра Windows 2000, XP
Запуск драйвера

Приемы программирования в режиме ядра
Приемы программирования в режиме ядра носят характерный отпечаток: здесь имеются свои ограничения и тактика, применяется свой набор служебных функций, не совпадающий с API набором пользовательского режима. Наконец, на использование системных функций в режиме ядра влияет приоритет программного кода, из которого предполагается их вызов: некоторые функции не могут быть вызваны при слишком высоких уровнях IRQL, некоторые, наоборот, не должны применяться на низких.

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

Объекты события
Событие есть синхронизационный примитив (объект), который должен быть явно установлен в сигнальное либо несигнальное состояние. Событие похоже на бинарный флаг, позволяющий одному потоку подавать сигналы другим потокам о том, что нечто, оговоренное заранее, произошло, и этот сигнал подается путем установки объекта события в сигнальное состояние.

Объекты события
Объекты события - 2
Объекты события - 3
Объекты события - 4
Семафоры
Семафоры - 2
Мьютексы
Мьютексы - 2
Мьютексы - 3
Мьютексы - 4

Hardware - разное

Группа компаний Bull является сегодня одним из крупнейших производителей информационных систем на мировом компьютерном рынке. В связи с происходившей в последнем пятилетии перестройкой структуры компьютерного рынка группа объявила о своей приверженности идеологии открытых систем. Сегодня Bull выпускает компьютеры класса мэйнфрейм . DPS9000, среднего класса . DPS7000и DPS6000, работающие под управлением операционной системы GCOS8, UNIX-системы DPX/20 и Escala, а также серию персональных компьютеров ZDS. В результате технологического соглашения с компанией IBM, в 1992 году Bull анонсировала ряд компьютеров DPX/20, базирующихся на архитектуре POWER, а позднее в1993 году . на архитектуре PowerPC, работающих под управлением операционной системы AIX. Версия ОС AIX 4.1, разработанная совместно специалистами IBM и Bull, поддерживает симметричную многопроцессорную обработку. Архитектура PowerScale представляет собой первую реализацию симметричной мультипроцессорной архитектуры, разработанной Bull специально для процессоров PowerPC, применяемых в компьютерах Escala. Вначале она была реализована на процессоре PowerPC601, но легко модернизируется и для других моделей этих чипов.

Архитектура PowerScale
ПРОГРАММНО КОНВЕЙЕРИЗОВАННЫЕ ЦИКЛЫ
Рынок проекционных систем: ждем перемен
Твердотельные датчики изображения
Super-AIT — прорыв в области наклонно-строчной записи

Лавкрафт Говард Филипс - Гипноз
Ламли Уильям - Дневник Алонсо Тайпера
Настройка Linux
Путь к Linux. Руководство по установке и настройке
Художник внутри вас
Организация ЭВМ и систем. Однопроцессорные ЭВМ
Нейрокомпьютерные системы
Работа в системе LaTeX
Лаврова Ольга & Лавров Александр - Следствие Ведут Знатоки
Латынина Юлия - Ахтарский Меткомбинат
Ле Гуин Урсула - История Шобиков
Леклер Дэй - Вспомни Ту Ночь
Леонов Леонид - Бегство Мистера Мак-Кинли
Лэрд Дж - Одна Душа, Два Тела
Безопасность жизнедеятельности
Ли Брекетт - Чужие Люди
Построение сетей. Базовый уровень подготовки
Путь к Linux. Руководство по установке и настройке
Установка Windows XP
Учебник по автоматической установке Windows XP