Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Инициализация статических VxD



VxD - это драйвер виртуального устройства (virtual device driver). Буква x обозначает тип устройства, например VDD - драйвер виртуального устройства для дисплея, а VPD - драйвер виртуального устройства для принтера.

Windows 95 поддерживает загружаемые при запуске системы статические VxD так же, как и VxD в Windows 3.x., кроме этого, поддерживает динамические VxD. В состав VMM32.VXD входит загрузчик реального режима, Диспетчер виртуальной машины и большинство статических VxD. Необходимо отметить, если файл VxD находится в каталоге SYSTEM\VMM32, Windows 95 загружает его в дополнение к VxD, объединенным в MRCI2.VXD.

Чтобы обновить VxD, включенный в состав монолитного VMM32.VXD, нужно поместить его файл в каталог SYSTEM\VMM32. Windows 95 всегда проверяет этот каталог и использует каждый из найденных там VxD вместо соответствующих драйверов из состава VMM32.VXD.

Рассмотрим какие VxD объединяются в файл VMM32.VXD в типичном случае (Точный их список для каждого компьютера будет своим). Эти драйверы обычно указываются в разделе [386enh] файла SYSTEM.INI.

Типичные VxD, объединяемые в файл VMM32.INI.

*vmouse *configmg *vwin32 *vfbackup *vcomm *ifsmgr

*ios *vfat *vcache *vcond *int13 *vxdldr

*vdef *dynapage *reboot *vsd *parity *biosxlat

*vmcpd *vkd *vdd *ebios *vtdapi

VMM32 загружает VxD- драйверы в три этапа:

1. VMM32 загружает базовые драйверы, указанные в реестре, который содержит записи для каждого VxD, не связанного напрямую с конкретным оборудованием. VxD находятся в следующей ветви реестра:

Hkey_Local_Machine\System\CurrentControlSet\Services\VxD

2. Если VMM32 находит в коком-либо разделе реестра параметр StaticVxD=, этот драйвер загружается и инициализируется в реальном режиме.

Например, следующая запись загружает *V86MMGR:

SYSTEM\CurrentControlSet\Services\VxD\V86MemoryManger

Description=MS-DOS Virtual 8086 Memory Manager

Manufacturer=Microsoft

StaticVxD=*V86MMGR

EMMEXCLUDE=E000-EFFF

3. VMM32 загружает статические VxD, указанные в строках device= *VxD в разделе [386enh] файла SYSTEM.INI. Такие VxD на самом деле загружаются из VMM32 и присутствуют в SYSTEM.INI только для совместимости.

Если какое-то устройство конфликтует с устройством, загруженным по информации из реестра, то устройство, заданное в SYSTEM.INI, имеет преимущество. Однако, если указанное в SYSTEM.INI устройство не будет найдено, то произойдет ошибка.

Многие модели построения драйверов Windows 95 вроде IOS (для драйверов дисков) и сетевые драйверы поддерживают динамическую загрузку. Подобные VxD загружаются не загрузчиком реального режима из VMM32, а загрузчиком устройства, отвечающим за загрузку и инициализацию драйверов в надлежащее время в надлежащем порядке.

Например, для минипорт- драйверов SCSI - адаптера загрузчиком устройства является *IOS. Записи, относящиеся к SCSI- адаптеру, находятся в разделе реестра:

Hkey_Local_Machine\System\CurrentControlSet\Services\Class

Поскольку запись StaticVxD=xxx в этом разделе реестра отсутствует, загрузчик реального режима VMM32 ничего не делает, обнаружив данное устройство.

Диспетчер конфигурации пытается найти все узлы устройств, по которым в реестре имеется запись DevLoader=. Загрузчик устройства (в предыдущем примере - *IOS) просматривает реестр, находит запись PortDriver=, загружает данный и любые связанные с ним драйверы, после чего инициализирует адаптер.





Дата публикования: 2015-10-09; Прочитано: 406 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...