Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El hipervisor admite el aislamiento en términos de una partición. Una partición es una unidad lógica de aislamiento, compatible con el hipervisor, en el que se ejecutan los sistemas operativos.
Marcas de privilegios de partición
Cada partición tiene un conjunto de privilegios asignados por el hipervisor. Los privilegios controlan el acceso a registros sintéticos o hiperllamadas.
En las plataformas x64, una partición puede consultar sus privilegios a través de la hoja de CPUID (0x40000003) de "Identificación de características de hipervisor".
En las plataformas ARM64, una partición puede consultar sus privilegios mediante el registro HvRegisterPrivilegesAndFeaturesInfo mediante HvCallGetVpRegisters.
Consulte HV_PARTITION_PRIVILEGE_MASK para obtener una descripción de todos los privilegios.
Creación de bloqueos de particiones
El hipervisor proporciona particiones de invitado con una instalación de iluminación de bloqueos. Esta interfaz permite al sistema operativo que se ejecuta en una partición de invitado la opción de proporcionar información forense sobre las condiciones fatales del sistema operativo al hipervisor como parte de su procedimiento de volcado de memoria. Entre las opciones se incluyen la conservación del contenido del registro de parámetros de bloqueo invitado y la especificación de un mensaje de bloqueo. A continuación, el hipervisor pone esta información a disposición de la partición raíz para el registro. Este mecanismo permite al administrador del host de virtualización recopilar información sobre el evento de bloqueo del sistema operativo invitado sin necesidad de inspeccionar el almacenamiento persistente asociado a la partición de invitado para el volcado de memoria o la información de volcado de memoria principal que el sistema operativo invitado puede almacenar allí.
En las plataformas x64, la disponibilidad de este mecanismo se indica a través CPUID.0x40000003.EDX:10de , la marca GuestCrashMsrsAvailable. En las plataformas ARM64, la disponibilidad se indica en el bit 105 de HvRegisterPrivilegesAndFeaturesInfo. Consulte la detección de características para obtener más información.
Interfaz de iluminación de bloqueos de invitado
En las plataformas x64, la interfaz de iluminación del bloqueo invitado se proporciona a través de seis MSR sintéticas, como se define a continuación.
#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
En las plataformas ARM64, la interfaz de iluminación del bloqueo invitado se proporciona a través de seis registros sintéticos a los que se accede a través de HvCallGetVpRegisters y HvCallSetVpRegisters:
- HvRegisterGuestCrashP0
- HvRegisterGuestCrashP1
- HvRegisterGuestCrashP2
- HvRegisterGuestCrashP3
- HvRegisterGuestCrashP4
- HvRegisterGuestCrashCtl
Registro de control de bloqueo de invitado
El registro de control de bloqueo de invitado (HV_X64_MSR_CRASH_CTL en x64, HvRegisterGuestCrashCtl en ARM64) puede usarse mediante particiones invitadas para determinar las funcionalidades de bloqueo de invitado del hipervisor e invocar la acción especificada que se va a realizar. La estructura de datos HV_CRASH_CTL_REG_CONTENTS define el contenido del registro.
Determinación de las funcionalidades de bloqueo de invitado
Para determinar las funcionalidades de bloqueo de invitado, las particiones de invitado pueden leer el registro del control de bloqueo de invitado. Se notifica el conjunto admitido de acciones y funcionalidades compatibles con el hipervisor.
Invocar funcionalidades de bloqueo de invitado
Para invocar una acción de bloqueo de invitado del hipervisor compatible, una partición de invitado escribe en el registro del control de bloqueo de invitado, especificando la acción deseada. Se admiten dos variaciones: CrashNotify por sí misma y CrashMessage en combinación con CrashNotify. Para cada aparición de un bloqueo de invitado, se debe realizar una sola escritura en el registro de control de bloqueo de invitado, especificando una de las dos variaciones.
| Acción de bloqueo de invitado | Description |
|---|---|
| CrashMessage | Esta acción se usa en combinación con CrashNotify para especificar un mensaje de bloqueo en el hipervisor. Cuando se selecciona, los valores de P3 y P4 se tratan como la ubicación y el tamaño del mensaje. El registro P3 contiene la dirección física de invitado del mensaje y el registro P4 contiene la longitud en bytes del mensaje (máximo de 4096 bytes). |
| CrashNotify | Esta acción indica al hipervisor que la partición de invitado ha completado la escritura de los datos deseados en los registros de parámetros de bloqueo de invitado (es decir, P0 thru P4) y el hipervisor debe continuar con el registro del contenido de estos registros. |