хвкаллсетвпрегистерсHvCallSetVpRegisters

Вызов Хвкаллсетвпрегистерс записывает состояние виртуального процессора.The HvCallSetVpRegisters hypercall writes the state of a virtual processor.

ИнтерфейсInterface

HV_STATUS
HvCallSetVpRegisters(
   _In_ HV_PARTITION_ID PartitionId,
   _In_ HV_VP_INDEX VpIndex,
   _In_ HV_INPUT_VTL InputVtl,
   _Inout_ PUINT32 RegisterCount,
   _In_reads(RegisterCount) PCHV_REGISTER_NAME RegisterNameList,
   _In_reads(RegisterCount) PCHV_REGISTER_VALUE RegisterValueList
   );

Состояние записывается в виде последовательности значений регистров, каждое из которых соответствует имени регистра, предоставленному в качестве входных данных.The state is written as a series of register values, each corresponding to a register name provided as input.

Минимальная проверка ошибок выполняется при изменении значения регистра.Minimal error checking is performed when a register value is modified. В частности, гипервизор проверяет, что Зарезервированные биты регистра имеют нулевое значение, биты, определяемые архитектурой, как всегда содержат ноль или один, устанавливаются соответствующим образом, а заданные биты, превышающие архитектурный размер регистра, будут обнулены.In particular, the hypervisor will validate that reserved bits of a register are set to zero, bits that are architecturally defined as always containing a zero or a one are set appropriately, and specified bits beyond the architectural size of the register are zeroed.

Этот вызов нельзя использовать для изменения значения регистра, доступного только для чтения.This call cannot be used to modify the value of a read-only register.

Побочные эффекты изменения регистра не выполняются.Side-effects of modifying a register are not performed. Это включает создание исключений, синхронизацию конвейеров, очистку TLB и т. д.This includes generation of exceptions, pipeline synchronizations, TLB flushes, and so on.

ОграниченияRestrictions

  • Вызывающий объект должен быть либо родительским по отношению к секции, заданной значением PartitionId, либо указанная секция должна быть "Self", а Секция должна иметь привилегию Акцессвпрегистерс.The caller must either be the parent of the partition specified by PartitionId, or the partition specified must be “self” and the partition must have the AccessVpRegisters privilege.

Код вызоваCall Code

0x0051 Склад0x0051 (Rep)

Входные параметрыInput Parameters

ИмяName OffsetOffset РазмерSize Предоставленные сведенияInformation Provided
PartitionId 00 88 Указывает идентификатор секции.Specifies the partition Id.
VpIndex 88 44 Указывает индекс виртуального процессора.Specifies the index of the virtual processor.
TargetVtl 1212 11 Указывает целевой VTL.specifies the target VTL.
рсвдзRsvdZ 1313 33

Элемент списка входных данныхInput List Element

ИмяName OffsetOffset РазмерSize Предоставленные сведенияInformation Provided
RegisterName 00 44 Указывает имя изменяемого регистра.Specifies the name of a register to be modified.
рсвдзRsvdZ 44 1212
RegisterValue 1616 1616 Указывает новое значение для указанного регистра.Specifies the new value for the specified register.

См. также разделSee also

HV_REGISTER_NAMEHV_REGISTER_NAME

HV_REGISTER_VALUEHV_REGISTER_VALUE