Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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. |