Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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; Прочитано: 409 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!