Организация ввода-вывода. Часть 1. Виртуальные драйверы и виртуальное окружение WINDOWS. Рощин А.В. - 36 стр.

UptoLike

Составители: 

36
SoftIce/Windows. Помещая отладочный код в сегмент отладки,
разработчики могут получить тот же самый выполняемый код, включая
код отладки, без увеличения размера исполняемого кода. VMM загрузит
отладочный код только при наличии системного отладчика, но опустит его
в цикле нормальной загрузки (то есть, когда системный отладчик
отсутствует).
3.3. Блок дескриптора устройства
Блок дескриптора устройства, или DDB (Device Descriptor Block),
служит для связи драйвера виртуальных машин VMM с VxD. DDB
содержит информацию, которая идентифицирует VxD и указатель на
главную точку входа в VxD. DDB может содержать также указатели на
другие точки входа, используемые приложениями или другими VxD. В
табл. 3.1 показаны поля структуры DDB, которые инициализируются в
VxD. Менеджер виртуальных машин VMM находит DDB VxD, и,
следовательно, главную
точку входа, как только он загружает VxD, ища
первый экспортируемое символическое имя в модуле.
Даже когда VxD написан на Си, он не имеет главной процедуры.
Вместо этого поле процедуры управления устройством в DDB содержит
адрес главной точки входа в VxD. После инициализации в реальном
режиме все запросы от VMM приходят в VxD через эту точку входа. VMM
использует эту точку входа, чтобы уведомить VxD относительно
изменения состояния виртуальной машины VM и самих Windows, и VxD
выполняют свою работу, реагируя на эти события. (Эти события будут
подробно обсуждаться позже.)
                                   36



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

     3.3. Блок дескриптора устройства

     Блок дескриптора устройства, или DDB (Device Descriptor Block),
служит для связи драйвера виртуальных машин VMM с VxD. DDB
содержит информацию, которая идентифицирует VxD и указатель на
главную точку входа в VxD. DDB может содержать также указатели на
другие точки входа, используемые приложениями или другими VxD. В
табл. 3.1 показаны поля структуры DDB, которые инициализируются в
VxD. Менеджер виртуальных машин VMM находит DDB VxD, и,
следовательно, главную точку входа, как только он загружает VxD, ища
первый экспортируемое символическое имя в модуле.
     Даже когда VxD написан на Си, он не имеет главной процедуры.
Вместо этого поле процедуры управления устройством в DDB содержит
адрес главной точки входа в VxD. После инициализации в реальном
режиме все запросы от VMM приходят в VxD через эту точку входа. VMM
использует эту точку входа, чтобы уведомить VxD относительно
изменения состояния виртуальной машины VM и самих Windows, и VxD
выполняют свою работу, реагируя на эти события. (Эти события будут
подробно обсуждаться позже.)