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

       

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

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

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

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

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



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

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 — прорыв в области наклонно-строчной записи