Udostępnij przez


Partitions

Funkcja hypervisor obsługuje izolację pod względem partycji. Partycja to jednostka logiczna izolacji obsługiwana przez funkcję hypervisor, w której są wykonywane systemy operacyjne.

Flagi uprawnień partycji

Każda partycja ma zestaw uprawnień przypisanych przez funkcję hypervisor. Uprawnienia kontrolują dostęp do syntetycznych rejestrów lub hipercalls.

Na platformach x64 partycja może wysyłać zapytania o swoje uprawnienia za pomocą liścia CPUID CPUID (0x40000003) funkcji "Hypervisor Feature Identification".

Na platformach ARM64 partycja może wykonywać zapytania dotyczące jego uprawnień za pomocą rejestru HvRegisterPrivilegesAndFeaturesInfo przy użyciu HvCallGetVpRegisters.

Aby uzyskać opis wszystkich uprawnień, zobacz HV_PARTITION_PRIVILEGE_MASK .

Oświecenie awarii partycji

Funkcja hypervisor zapewnia partycje gościa z obiektem oświecenia awaryjnego. Ten interfejs umożliwia systemowi operacyjnemu działającemu w partycji gościa opcję dostarczania informacji kryminalistycznych dotyczących krytycznych warunków systemu operacyjnego funkcji hypervisor w ramach procedury zrzutu awaryjnego. Opcje obejmują zachowanie zawartości rejestru parametrów awarii gościa i określanie komunikatu o awarii. Funkcja hypervisor udostępnia następnie te informacje partycji głównej na potrzeby rejestrowania. Ten mechanizm umożliwia administratorowi hosta wirtualizacji zbieranie informacji o zdarzeniu awarii systemu operacyjnego gościa bez konieczności inspekcji trwałego magazynu dołączonego do partycji gościa pod kątem zrzutu awaryjnego lub podstawowych informacji zrzutu, które mogą być tam przechowywane przez system operacyjny gościa, który ulega awarii.

Na platformach x64 dostępność tego mechanizmu jest wskazywana za pośrednictwem CPUID.0x40000003.EDX:10flagi GuestCrashMsrsAvailable. Na platformach ARM64 dostępność jest wskazana w bit 105 HvRegisterPrivilegesAndFeaturesInfo. Aby uzyskać szczegółowe informacje, zobacz odnajdywanie funkcji .

Interfejs oświecenia awarii gościa

Na platformach x64 interfejs oświecenia awarii gościa jest dostarczany za pośrednictwem sześciu syntetycznych msrs, zgodnie z definicją poniżej.

#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

Na platformach ARM64 interfejs oświecenia awarii gościa jest dostarczany za pośrednictwem sześciu syntetycznych rejestrów dostępnych za pośrednictwem HvCallGetVpRegisters i HvCallSetVpRegisters:

  • HvRegisterGuestCrashP0
  • HvRegisterGuestCrashP1
  • HvRegisterGuestCrashP2
  • HvRegisterGuestCrashP3
  • HvRegisterGuestCrashP4
  • HvRegisterGuestCrashCtl

Rejestrowanie kontroli awarii gościa

Rejestr kontroli awarii gościa (HV_X64_MSR_CRASH_CTL na x64, HvRegisterGuestCrashCtl w arm64) może być używany przez partycje gościa do określenia funkcji awarii gościa funkcji hypervisor i wywołania określonej akcji do podjęcia. Struktura danych HV_CRASH_CTL_REG_CONTENTS definiuje zawartość rejestru.

Określanie możliwości awarii gościa

Aby określić możliwości awarii gościa, partycje gościa mogą odczytywać rejestr kontroli awarii gościa. Zgłaszany jest obsługiwany zestaw akcji i możliwości obsługiwanych przez funkcję hypervisor.

Wywoływanie możliwości awarii gościa

Aby wywołać obsługiwaną akcję awarii gościa funkcji hypervisor, partycja gościa zapisuje w rejestrze kontroli awarii gościa, określając żądaną akcję. Obsługiwane są dwie odmiany: CrashNotify samodzielnie i CrashMessage w połączeniu z CrashNotify. Dla każdego wystąpienia awarii gościa należy wykonać co najwyżej jeden zapis w rejestrze kontroli awarii gościa, określając jedną z dwóch odmian.

Akcja awarii gościa Description
CrashMessage Ta akcja jest używana w połączeniu z CrashNotify, aby określić komunikat o awarii funkcji hypervisor. Po wybraniu wartości P3 i P4 są traktowane jako lokalizacja i rozmiar komunikatu. Rejestr P3 zawiera fizyczny adres gościa wiadomości, a rejestr P4 zawiera długość w bajtach wiadomości (maksymalnie 4096 bajtów).
CrashNotify Ta akcja wskazuje na funkcję hypervisor, że partycja gościa zakończyła zapisywanie żądanych danych w rejestrach parametrów awarii gościa (tj. P0 thru P4), a funkcja hypervisor powinna kontynuować rejestrowanie zawartości tych rejestrów.