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

UptoLike

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

40
Управляю-
щий
Управляю-
щий
Управляю-
щий
блок VM1
блок VM2
блок VM3
Обработчик VM1 Данные Обработ Данные Обработ Данные
VMM чик VM2 VMM чик VM3 VMM
Смещение А
Смещение В
Данные, Данные Данные Данные
сохраненные по VM для VM для VM для
запросу VxD1 VxD1 VxD1 VxD1
Данные, Данные Данные Данные
сохраненные по VM для VM для VM для
запросу VxD2 VxD2 VxD2 VxD2
VxD1
Контекст
устройства
VxD2
Контекст
устройства
. .
. Указатель на Смещение В
. VM
. .
Указатель на Смещение А .
VM .
. .
. .
. .
Рис. 3.1
Иллюстрирует, как блок управляющих данных (CBD) может
использоваться для сохранения информации виртуальной машины
для каждого из нескольких устройств
Если Вы динамически размещаете вашу структуру устройства во
время выполнения, используйте сервисную функцию VMM _HeapAllocate,
которая подобна функции malloc языка Си. Однако, если ваша структура
устройства включает большой буфер (4Кб или больший), следует
включить непосредственно в структуру устройства только указатель на
                                     40




                     Управляю-             Управляю-               Управляю-
                     щий                   щий                     щий
                     блок VM1              блок VM2                блок VM3
Обработчик VM1       Данные      Обработ Данные          Обработ   Данные
                     VMM         чик VM2 VMM             чик VM3   VMM

Смещение А


Смещение В


Данные,              Данные                Данные                  Данные
сохраненные по       VM для                VM для                  VM для
запросу VxD1         VxD1                  VxD1                    VxD1

Данные,              Данные                Данные                  Данные
сохраненные по       VM для                VM для                  VM для
запросу VxD2         VxD2                  VxD2                    VxD2


                         Контекст                             Контекст
       VxD1             устройства           VxD2            устройства
         .                                     .
         .                                Указатель на      Смещение В
         .                                    VM
         .                                     .
    Указатель на       Смещение А              .
        VM                                     .
         .                                     .
         .                                     .
         .                                     .



Рис. 3.1   Иллюстрирует, как блок управляющих данных (CBD) может
           использоваться для сохранения информации виртуальной машины
           для каждого из нескольких устройств

      Если Вы динамически размещаете вашу структуру устройства во
время выполнения, используйте сервисную функцию VMM _HeapAllocate,
которая подобна функции malloc языка Си. Однако, если ваша структура
устройства включает большой буфер (4Кб или больший), следует
включить непосредственно в структуру устройства только указатель на