虚拟机监控程序支持对分区的隔离。 分区是虚拟机监控程序支持的逻辑隔离单元,其中将会运行操作系统。
分区特权标志
每个分区都具有虚拟机监控程序分配的一组特权。 权限控制对综合 MSRs 或虚拟化的访问。
分区可以通过 "虚拟机监控程序功能标识" CPUID 叶 (0x40000003) 查询其权限。 有关所有权限的说明,请参阅 HV_PARTITION_PRIVILEGE_MASK 。
分区崩溃悟道
虚拟机监控程序使用崩溃悟道设施提供来宾分区。 此接口允许在来宾分区中运行的操作系统提供有关作为其故障转储过程的一部分的虚拟机监控程序的符合性信息。 选项包括保留来宾崩溃参数 MSRs 的内容以及指定崩溃消息。 然后,虚拟机监控程序使此信息可用于日志记录的根分区。 此机制允许虚拟化主机管理员收集有关来宾操作系统崩溃事件的信息,而无需检查连接到来宾分区的持久存储,以获取故障转储或可能由崩溃来宾操作系统存储的核心转储信息。
此机制的可用性通过 CPUID.0x400003.EDX:10 GuestCrashMsrsAvailable 标志指示; 请参阅 功能发现。
来宾崩溃悟道接口
来宾崩溃悟道接口通过六个综合 MSRs 提供,如下所定义。
#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
来宾崩溃控制 MSR
来宾分区可以使用来宾崩溃控制 MSR HV_X64_MSR_CRASH_CTL 来确定虚拟机监控程序的来宾崩溃功能,并调用要执行的指定操作。 HV_CRASH_CTL_REG_CONTENTS的数据结构定义 MSR 的内容。
确定来宾故障功能
若要确定来宾崩溃功能,来宾分区可能会读取 HV_X64_MSR_CRASH_CTL register。 报告了虚拟机监控程序支持的一组受支持的操作和功能。
调用来宾崩溃功能
若要调用受支持的虚拟机监控程序来宾崩溃操作,请将来宾分区写入 HV_X64_MSR_CRASH_CTL register,并指定所需的操作。 支持两种变体: CrashNotify 本身和 CrashMessage 与 CrashNotify 结合使用。 对于发生的每个来宾崩溃,最多只能执行一次写入 MSR HV_X64_MSR_CRASH_CTL,同时指定两种变化之一。
| 来宾崩溃操作 | 描述 | 
|---|---|
| CrashMessage | 此操作与 CrashNotify 结合使用,可为虚拟机监控程序指定崩溃消息。 如果选择此选项,则将 P3 和 P4 值视为消息的位置和大小。 HV_X64_MSR_CRASH_P3 是消息的来宾物理地址,HV_X64_MSR_CRASH_P4 是消息的长度(以字节为单位, (最大值为4096字节) )。 | 
| CrashNotify | 此操作向虚拟机监控程序表明,来宾分区已完成将所需的数据写入来宾故障参数 MSRs (即,P0) ,并且虚拟机监控程序应该继续记录这些 MSRs 的内容。 |