УПРАВЛЕНИЕ СОСТОЯНИЕМ РАСПРЕДЕЛЕННЫХ АППАРАТНЫХ СРЕДСТВ В ВИРТУАЛЬНЫХ МАШИНАХ

1. Система для управления операциями в среде виртуальных машин, содержащая:
по меньшей мере один объект прокси-драйвера, расположенный в первом разделе, причем указанный по меньшей мере один объект прокси-драйвера является прокси-драйвером для устройства;
по меньшей мере один объект драйвера устройства, расположенный в стеке драйверов во втором разделе, причем указанный по меньшей мере один объект драйвера сконфигурирован для управления упомянутым устройством;
по меньшей мере один объект первого фильтра, расположенный под упомянутым по меньшей мере одним объектом драйвера устройства в упомянутом стеке драйверов, причем упомянутый по меньшей мере один объект первого фильтра предоставляет интерфейс для упомянутого по меньшей мере одного объекта драйвера устройства, чтобы по меньшей мере один объект драйвера устройства участвовал в шинных функциях, включая управление упомянутым устройством; и
по меньшей мере один объект второго фильтра, расположенный над упомянутым по меньшей мере одним объектом драйвера устройства в упомянутом стеке драйверов, причем упомянутый по меньшей мере один объект второго фильтра сконфигурирован для выполнения по меньшей мере одной из следующих функций: (a) направлять первые инструкции от упомянутого по меньшей мере одного объекта прокси-драйвера упомянутому по меньшей мере одному объекту драйвера устройства и (b) перехватывать вторые инструкции, предназначенные для упомянутого по меньшей мере одного объекта драйвера устройства, причем упомянутые вторые инструкции происходят из упомянутого второго раздела.
2. Система по п.1, дополнительно содержащая объект первого раздела, осуществляющий связь с упомянутым по меньшей мере одним прокси-объектом устройства, причем упомянутый объект первого раздела указывает упомянутому по меньшей мере одному прокси-объекту устройства реализовать по меньшей мере одно событие изменения состояния, причем упомянутое по меньшей мере одно событие изменения состояния передается через упомянутые первые инструкции.
3. Система по п.2, в которой упомянутый объект первого раздела является по меньшей мере одним из следующих: (a) объект диспетчера Plug-and-Play и (b) объект диспетчера питания.
4. Система по п.2, в которой упомянутое по меньшей мере одно событие изменения состояния является полносистемным событием.
5. Система по п.1, дополнительно содержащая объект второго раздела, осуществляющий связь с упомянутым по меньшей мере одним объектом второго фильтра через упомянутые вторые инструкции, причем упомянутый объект второго раздела указывает упомянутому по меньшей мере одному объекту второго фильтра реализовать инструкции, связанные по меньшей мере с одним из следующих событий: (a) событием plug-and-play и (b) событием питания.
6. Система по п.1, в которой при перехвате упомянутых вторых инструкций упомянутый по меньшей мере один объект второго фильтра сравнивает упомянутые вторые инструкции по меньшей мере с одной политикой, установленной (a) упомянутым первым разделом и/или (b) виртуализационным модулем, причем, если упомянутые вторые инструкции конфликтуют с упомянутой по меньшей мере одной политикой, упомянутый по меньшей мере один объект второго фильтра замещает упомянутые вторые инструкции инструкциями, согласующимися с упомянутой по меньшей мере одной политикой, и передает их вниз упомянутому по меньшей мере одному объекту драйвера устройства.
7. Система по п.1, в которой, если упомянутый по меньшей мере один объект драйвера устройства расходится по меньшей мере с одной политикой, установленной упомянутым первым разделом, контроль упомянутого устройства упомянутым по меньшей мере одним объектом драйвера устройства отменяется.
8. Способ управления операциями в среде виртуальных машин, содержащий:
построение в разделе стека устройств, соответствующего физическому устройству;
расположение объекта первого фильтра, который предоставляет интерфейс для объекта драйвера устройства, в упомянутом стеке устройств;
расположение упомянутого объекта драйвера устройства над упомянутым объектом первого фильтра, причем упомянутый объект драйвера управляет упомянутым физическим устройством через упомянутый объект первого фильтра; и
расположение объекта второго фильтра слоем над упомянутым объектом драйвера устройства, причем упомянутый объект второго фильтра настраивается для направления первого набора инструкций от объекта прокси-драйвера упомянутому стеку устройств, причем упомянутый прокси-драйвер находится в каком-либо другом разделе.
9. Способ по п.8, дополнительно содержащий перехват второго набора инструкций, предназначенного для упомянутого объекта драйвера устройства, причем упомянутые вторые инструкции происходят из упомянутого раздела.
10. Способ по п.9, дополнительно содержащий последующую за упомянутым перехватом замену альтернативными инструкциями, если упомянутые вторые инструкции конфликтуют с политиками, установленными модулем в упомянутом другом разделе.
11. Способ по п.8, дополнительно содержащий удаление объекта драйвера для упомянутого физического устройства из упомянутого другого раздела.
12. Способ по п.8, дополнительно содержащий загрузку упомянутого прокси-драйвера, управляющего запросами от упомянутого другого раздела, причем упомянутые запросы передаются упомянутым прокси-драйвером упомянутому разделу для выполнения задач упомянутым объектом драйвера устройства.
13. Способ по п.8, дополнительно содержащий перенаправление запросов для упомянутого объекта прокси-драйвера упомянутому стеку драйверов, причем упомянутые запросы имеют полносистемные эффекты.
14. Способ по п.8, выявляющий отказ объекта драйвера устройства действовать в соответствии с политиками, установленными упомянутым другим разделом, и, если такой отказ происходит, отменяющий управление упомянутым физическим устройством из упомянутого объекта драйвера устройства.
15. Способ по п.8, назначающий упомянутый раздел непривилегированным разделом, а упомянутый другой раздел - доверенным разделом упомянутой среды виртуальных машин.
16. Компьютерночитаемый носитель, несущий компьютерноисполняемые инструкции, реализуемые на физическом вычислительном устройстве, содержащие:
создание объектов прокси-драйверов в первом разделе, причем упомянутые объекты прокси-драйверов выступают в роли посредника для устройств;
создание объектов драйверов устройств в стеках драйверов во втором разделе, причем упомянутые объекты драйверов сконфигурированы для управления упомянутыми устройствами;
создание объектов первого фильтра под упомянутыми объектами драйверов устройств в упомянутых стеках драйверов, причем упомянутые объекты первого фильтра предоставляют интерфейсы для упомянутых объектов драйверов устройств, чтобы упомянутые объекты драйверов устройств управляли упомянутыми устройствами; и
создание объектов второго фильтра над упомянутыми объектами драйверов устройств в упомянутых стеках драйверов, причем упомянутые объекты второго фильтра сконфигурированы так, чтобы выполнять по меньшей мере одну из следующих функций: (a) направлять инструкции от первого раздела упомянутому объекту драйвера устройства и (b) перехватывать инструкции от второго раздела, предназначенные для упомянутого объекта драйвера устройства.
17. Компьютерночитаемый носитель по п.16, дополнительно содержащий выгрузку любых объектов драйверов для упомянутых устройств из упомянутого первого раздела.
18. Компьютерночитаемый носитель по п.16, дополнительно содержащий направление упомянутых инструкций от первого раздела упомянутым объектам драйверов устройств в ответ на запросы от управляющих модулей для упомянутых прокси-объектов устройств, причем упомянутые управляющие модули формируют набор модулей, включая диспетчеры Plug-and-Play и диспетчеры питания.
19. Компьютерночитаемый носитель по п.16, дополнительно содержащий назначение упомянутого первого раздела доверенным разделом, а упомянутого второго раздела недоверенным разделом.
20. Компьютерночитаемый носитель по п.16, перехватывающий упомянутые инструкции от второго раздела, предназначенные для упомянутых объектов драйверов устройств, и проверяющий упомянутые инструкции от второго раздела на согласованность с политиками от первого раздела, причем при упомянутом перехвате упомянутые инструкции от второго раздела заменяются инструкциями, согласующимися с упомянутыми политиками, если между упомянутыми инструкциями от второго раздела и упомянутыми политиками от первого раздела происходит несогласованность.