Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Гипервизор поддерживает изоляцию с точки зрения секции. Секция — это логическая единица изоляции, поддерживаемая гипервизором, в которой выполняются операционные системы.
Флаги привилегий секции
Каждый раздел имеет набор привилегий, назначенных гипервизором. Привилегии управляют доступом к искусственным регистрам или гиперкалилям.
На платформах x64 секция может запрашивать свои привилегии с помощью конечной страницы ЦПID (0x40000003).
На платформах ARM64 секция может запрашивать свои привилегии с помощью регистрации HvRegisterPrivilegesAndFeaturesInfo с помощью HvCallGetVpRegisters.
Описание всех привилегий см. в HV_PARTITION_PRIVILEGE_MASK .
Сбой секции
Гипервизор предоставляет гостевые секции с средством аварийного просвещения. Этот интерфейс позволяет операционной системе, работающей в гостевой секции, предоставлять криминалистическую информацию о неустранимых условиях ОС гипервизору в рамках процедуры аварийного дампа. Параметры включают сохранение содержимого регистров параметра аварийного сбоя гостя и указание сообщения о сбое. Затем гипервизор предоставляет эти сведения корневой секции для ведения журнала. Этот механизм позволяет администратору узла виртуализации собирать сведения о событии сбоя гостевой ОС без необходимости проверять постоянное хранилище, подключенное к гостевой секции для аварийного дампа или основного дампа, которые могут храниться там сбоем гостевой ОС.
На платформах x64 доступность этого механизма указывается с помощью CPUID.0x40000003.EDX:10флага GuestCrashMsrsAvailable. На платформах ARM64 доступность указывается в бите 105 hvRegisterPrivilegesAndFeaturesInfo. Дополнительные сведения см. в статье об обнаружении признаков .
Интерфейс просвещений гостевой аварии
На платформах x64 интерфейс просвещений гостевых сбоев предоставляется через шесть синтетических MSR, как описано ниже.
#define HV_X64_MSR_CRASH_P0 0x40000100
#define HV_X64_MSR_CRASH_P1 0x40000101
#define HV_X64_MSR_CRASH_P2 0x40000102
#define HV_X64_MSR_CRASH_P3 0x40000103
#define HV_X64_MSR_CRASH_P4 0x40000104
#define HV_X64_MSR_CRASH_CTL 0x40000105
На платформах ARM64 интерфейс просвещений гостевых сбоев предоставляется через шесть искусственных регистров, доступ к которые осуществляется через HvCallGetVpRegisters и HvCallSetVpRegisters:
- HvRegisterGuestCrashP0
- HvRegisterGuestCrashP1
- HvRegisterGuestCrashP2
- HvRegisterGuestCrashP3
- HvRegisterGuestCrashP4
- HvRegisterGuestCrashCtl
Регистрация гостевого аварийного сбоя
Регистр гостевого аварийного восстановления (HV_X64_MSR_CRASH_CTL на x64, HvRegisterGuestCrashCtl на ARM64) может использоваться гостевыми секциями для определения возможностей гостевого сбоя гипервизора и вызова указанных действий для выполнения. Структура данных HV_CRASH_CTL_REG_CONTENTS определяет содержимое регистра.
Определение возможностей аварийного сбоя гостей
Чтобы определить возможности аварийного сбоя гостя, гостевые секции могут считывать регистр гостевого аварийного управления. Сообщается поддерживаемый набор действий и возможностей, поддерживаемых гипервизором.
Вызов возможностей аварийного сбоя гостевой системы
Чтобы вызвать поддерживаемое действие аварийного сбоя с гипервизором, гостевой раздел записывается в регистр гостевого аварийного управления, указывая требуемое действие. Поддерживаются два варианта: CrashNotify самостоятельно и CrashMessage в сочетании с CrashNotify. Для каждого вхождения аварийного сбоя гостя необходимо выполнить по крайней мере одну запись в регистр гостевого элемента управления аварийного сбоя, указав один из двух вариантов.
| Действие аварийного сбоя гостя | Description |
|---|---|
| CrashMessage | Это действие используется в сочетании с CrashNotify для указания сообщения о сбое гипервизора. При выборе значения P3 и P4 обрабатываются как расположение и размер сообщения. Регистр P3 содержит гостевой физический адрес сообщения, а регистр P4 содержит длину в байтах сообщения (не более 4096 байт). |
| CrashNotify | Это действие указывает гипервизору, что гостевая секция завершила запись нужных данных в регистры параметров аварийного сбоя гостя (т. е. P0 thru P4), а гипервизор должен продолжить ведение журнала содержимого этих регистров. |