Драйверы устройств в системе Windows


События, управляющие устройством - часть 2


-------------------+--------------------------------------------------

VM_Critical_Init   | Вторая фаза создания виртуальной машины VM.

-------------------+--------------------------------------------------

VM_Init            | Третья  фаза  создания   виртуальной  машины  VM.

Sys_VM_Init        | Драйвер  VxD  может  аварийно   завершить  работу

                   | виртуальной машины VM.

-------------------+--------------------------------------------------

Query_Destroy      | Позволяет драйверу VxD предупредить  пользователя

                   | о затруднениях при разрушении виртуальной  машины

                   | VM.

-------------------+--------------------------------------------------

VM_Terminate       | Первая  стадия  успешного  завершения виртуальной

Sys_VM_Terminate   | машины VM.  Если   это   системная    виртуальная

                   | машина VM,   то   сообщение   указывает,      что

                   | производится нормальное, вызванное пользователем,

                   | завершение системы Windows.

-------------------+--------------------------------------------------

VM_Not_Executeable | Виртуальная машина VM  закрывается. Первая стадия

                   | аварийного завершения виртуальной машины VM.

-------------------+--------------------------------------------------

     Драйвер   VxD   примера   выполняет   управление   только   фазой Device_Init.  На  этой  стадии  устанавливается  связь с портом ввода-вывода   и   уровнем   прерывания   11,   а   также   производится  их виртуализация. Обычно драйвер VxD виртуализирует порты ввода-вывода  и прерывание в соответствии с физическим аппаратным оборудованием. Но  в данном  случае  драйвер  VxD  может  виртуализировать  и  делает это с портом и прерыванием, которые не имеют соответствующего  подключенного аппаратного оборудования.

     Код   Install_IO_Handler   вызывается,   чтобы   виртуализировать единственный   порт    ввода-вывода.   Затем    всякий   раз,    когда осуществляется доступ к  описанному порту ввода-вывода  из виртуальной машины VM,  программа управления  виртуальной машиной  системы Windows (Virtual  Machine  Manager  -  VMM)  вызывает  обратно драйвер VxD для того, чтобы разрешить ему имитировать операции ввода-вывода.

     Код  VPICD_Virtualize_IRQ   вызывается,  чтобы   виртуализировать уровень  прерывания.  Выполняя   его,  можно  имитировать   прерывание аппаратного оборудования (в частности IRQ 11) в виртуальной машине.




- Начало -  - Назад -  - Вперед -



Книжный магазин