Виртуальные драйвера устройств
VxD - это абревиатура Virtual Device Driver. x - это замена имение устройства, например, виртуальный драйвер клавиатуры, виртуальный драйвер мыши и так далее. VxD - это ключи к успешной виртуализации железа. Помните, что DOS-программы думают, что под ними вся система. Когда они запускаются в виртуальной машине, Windows должна предоставить им воплощения реальный устройств. VxD - это они и есть. VxD обычно воплощают какие-либо хардварные устройства. Hапример, когда dos-программа думает, что она взаимодействует с клавиатурой, на самом деле, она взаимодействует с виртуальным устройством-клавиатурой. VxD обычно берет контроль над каким-то "железным" устройством и распределяет доступ к нему между виртуальными машинами.
Тем не менее, такого правила, что VxD должен быть ассоциирован с каким-то железом, нет. Это правда, что VxD были спроектированы для виртуализации хардварных устройств, но мы также можем рассматривать их как ring-0 DLL. Hапример, если вы хотите получить возможности, которые могут быть достигнуты только в ring 0, вы можете написать VxD, который выполнит эту работу за вас. Таким образом, вы можете рассматривать VxD как расширение вашей программы, так как он не виртуализирует никакого реального устройства.
Прежде, чем перейти к рассказу о том, как создавать свои VxD, давайте я сообщу несколько важных моментов относительно VxD.
- VxD существуют только в Windos 9x. Они не будут выполняться на Windows NT. Поэтому, если ваша программа полагается на VxD, она не будет работать под платформой Windows NT.
- VxD - это наиболее мощные объекты системы. Так как они могут делать все, что угодно, они очень опасны. Hеисправный VxD может привести к "падению" системы. Пpотив таких VxD нет защиты.
- Обычно существует много путей, чтобы достигнуть желаемой цели без обращения к VxD. Подумайте дважды, прежде, чем прибегнуть к ним. Только если нет возможности выполнить задачу в ring 3, используйте их.
В Windows 95 существует два типа VxD.
- Static VxD
- Dynamic VxD
Статические VxD - это такие VxD, которые загружаются во время системной загрузки и остаются загруженными, пока система не прекратит работу. Этот тип VxD появился еще во времена Windows 3.x. Динамические VxD доступны только под Windows 9x. Динамические VxD могут загружаться и выгружаться по мере надобности. Большая часть этих VxD - это VxD, которые контролируют устройства Plug and Play. Эти драйвера загружаются Менеджером Конфигурации и Inрut Outрut Suрervisor'ом. Вы также можете загружать/выгружать динамические VxD из ваших win32-приложений.