КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Процесс загрузки драйверов
Системный файл MS-DOS с именем io.sys содержит драйверы для некоторых устройств. Эти драйверы появляются в памяти при загрузке операционной системы и связаны в цепочку через поля next в своих заголовках. Такие драйверы мы будем называть резидентными драйверами MS-DOS. Резидентные драйверы можно заменить драйверами пользователя. Кроме того, пользователь может добавить в список драйверов новые. Для подключения драйвера к операционной системе файл config.sys должен содержать строку следующего вида: DEVICE=<путь_файла_драйвера>_<параметры>.Например: DEVICE=c:dossmartdrv.sys 120В этом примере подключается драйвер smartdrv.sys, который находится в каталоге dos на диске C:. В качестве параметра инициализации драйверу передается число 120. Параметры считываются драйвером один раз в процессе инициализации драйвера. Загружаемые дополнительно драйверы находятся в списке драйверов перед резидентными драйверами. В этом можно убедиться, посмотрев на результаты работы программы drvlist: Device Drivers Information V1.1 Address Attr Device Name------- ---- -----------011C:0048 8004 NUL 0E5D:2192 08C2 --------> Block Device, Number of Units: 0004DD61:0000 C053 CON EC03:0000 D000 IFS$HLP$C94C:0000 C800 MITSUMI 02CB:003A C000 $MMXXXX002CB:0000 C000 EMMQXXX00282:0000 A000 XMSXXXX0025D:0000 8000 SETVERXX0070:0023 8013 CON 0070:0035 8000 AUX 0070:0047 A0C0 PRN 0070:0059 8008 CLOCK$ 0070:006B 08C2 --------> Block Device, Number of Units: 00040070:007B 8000 COM1 0070:008D A0C0 LPT1 0070:009F A0C0 LPT2 0070:00B8 A0C0 LPT3 0070:00CA 8000 COM2 0070:00DC 8000 COM3 0070:00EE 8000 COM4Эта программа показывает весь список драйверов с самого его начала. Для каждого драйвера выводится адрес его расположения в памяти, слово атрибутов драйвера и имя устройства (либо количество обслуживаемых блочным драйвером устройств). Первым в этом списке всегда является драйвер устройства с именем NUL. Это так называемое нуль-устройство, которое можно использовать для отладки. Драйвер псевдоустройства NUL не может быть переназначен, он всегда расположен непосредственно за векторной таблицей связи MS-DOS. Дальше идут драйверы, описанные в файле config.sys. Начиная с драйвера консоли CON, в списке расположены резидентные драйверы, имеющие сегментный адрес 0070. Это драйвер последовательного канала связи AUX, драйвер устройства печати PRN, драйвер часов CLOCK$, драйверы последовательных каналов COM1, COM2, COM3, COM4 и драйверы устройств печати LPT1, LPT2, LPT3. Если ваш драйвер должен заменить стандартный, укажите имя устройства заглавными буквами (например, LPT1). Система разместит ваш драйвер в цепочке драйверов до стандартного драйвера с именем LPT1. Когда операционная система загружает драйвер, она создает заголовок запроса и помещает в него команду инициализации. Затем она вызывает программу стратегии драйвера, которой передается адрес подготовленного заголовка запроса. После этого управление передается программе прерывания драйвера. Эта программа просматривает заголовок запроса и выполняет указанную в ней команду инициализации. Инициализирующая часть выполняется только один раз при загрузке драйвера. Она может считать параметры инициализации из файла config.sys, выдать инициализирующие команды на периферийное устройство, выполнить инициализацию внутренних областей данных и т. д. Перед завершением своей работы инициализирующая часть драйвера записывает в заголовок запроса размер резидентной части драйвера. Фрагмент драйвера, который выполняет инициализацию, больше не будет нужен, поэтому его не следует оставлять в памяти.
Дата добавления: 2014-01-15; Просмотров: 459; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |