ВУЗ:
Составители:
39
режима должен передать больше четырех байтов, он должен отвести блок
памяти при помощи LDSRV_Copy_Extended_Memory и возвратить адрес
блока в EDX. Секция защищенного режима VxD может тогда использовать
Reference_Data как указатель на отведенный блок.
3.4. Поддержка структур данных
DDB – единственная структура данных, фактически требуемая VMM
от VxD. Однако VxD обычно обслуживают больше, чем одно физическое
устройство (например мультиплексируемые последовательные порты) и
взаимодействуют более, чем с одной виртуальной машиной. Большинство
VxD должны создавать свои собственные механизмы поддержки структур
данных, чтобы хранить информацию о конфигурации и состоянии каждого
устройства и каждой виртуальной машины.
VxD обычно
используют одну или большее количество структур
контекста устройств для хранения специфической для устройства
информации, такой, как базовый адрес ввода вывода, запросы прерывания
IRQ, и т.д. Эти структуры контекста устройства могут быть размещены
статически в сегменте данных VxD (заблокированном, если используются
обработчиком прерывания) или динамически посредством сервиса VMM.
Вообще, если количество устройств
заведомо фиксировано,
размещайте структуры устройства статически, если же количество может
изменяться, размещайте их динамически. Например, все PC имеют два
контроллера прямого доступа к памяти (DMA), так что виртуальный DMA
драйвер объявляет статические структуры устройства в своем сегменте
данных, однако, количество последовательных портов PC переменно, так
что драйвер последовательного порта динамически размещает структуру
каждого устройства, как
только последовательный порт будет обнаружен.
39
режима должен передать больше четырех байтов, он должен отвести блок
памяти при помощи LDSRV_Copy_Extended_Memory и возвратить адрес
блока в EDX. Секция защищенного режима VxD может тогда использовать
Reference_Data как указатель на отведенный блок.
3.4. Поддержка структур данных
DDB – единственная структура данных, фактически требуемая VMM
от VxD. Однако VxD обычно обслуживают больше, чем одно физическое
устройство (например мультиплексируемые последовательные порты) и
взаимодействуют более, чем с одной виртуальной машиной. Большинство
VxD должны создавать свои собственные механизмы поддержки структур
данных, чтобы хранить информацию о конфигурации и состоянии каждого
устройства и каждой виртуальной машины.
VxD обычно используют одну или большее количество структур
контекста устройств для хранения специфической для устройства
информации, такой, как базовый адрес ввода вывода, запросы прерывания
IRQ, и т.д. Эти структуры контекста устройства могут быть размещены
статически в сегменте данных VxD (заблокированном, если используются
обработчиком прерывания) или динамически посредством сервиса VMM.
Вообще, если количество устройств заведомо фиксировано,
размещайте структуры устройства статически, если же количество может
изменяться, размещайте их динамически. Например, все PC имеют два
контроллера прямого доступа к памяти (DMA), так что виртуальный DMA
драйвер объявляет статические структуры устройства в своем сегменте
данных, однако, количество последовательных портов PC переменно, так
что драйвер последовательного порта динамически размещает структуру
каждого устройства, как только последовательный порт будет обнаружен.
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
