HvCallSetVpRegisters

HvCallSetVpRegisters 하이퍼콜은 가상 프로세서의 상태를 씁니다.

인터페이스

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
   );

상태는 각각 입력으로 제공된 레지스터 이름에 해당하는 일련의 레지스터 값으로 작성됩니다.

레지스터 값이 수정될 때 최소 오류 검사가 수행됩니다. 특히 하이퍼바이저는 레지스터의 예약된 비트가 0으로 설정되고, 항상 0 또는 1을 포함하는 것으로 아키텍처적으로 정의된 비트가 적절하게 설정되고, 레지스터의 아키텍처 크기를 초과하는 지정된 비트가 0으로 설정되어 있는지 확인합니다.

이 호출은 읽기 전용 레지스터의 값을 수정하는 데 사용할 수 없습니다.

레지스터 수정의 부작용은 수행되지 않습니다. 여기에는 예외 생성, 파이프라인 동기화, TLB 플러시 등이 포함됩니다.

제한

  • 호출자는 PartitionId로 지정된 파티션의 부모이거나 지정된 파티션이 "self"여야 하며 파티션에 AccessVpRegisters 권한이 있어야 합니다.

호출 코드

0x0051 (Rep)

입력 매개 변수

이름 Offset 크기 제공된 정보
PartitionId 0 8 파티션 ID를 지정합니다.
VpIndex 8 4 가상 프로세서의 인덱스를 지정합니다.
TargetVtl 12 1 는 대상 VTL을 지정합니다.
RsvdZ 13 3

입력 목록 요소

이름 Offset 크기 제공된 정보
RegisterName 0 4 수정할 레지스터의 이름을 지정합니다.
RsvdZ 4 12
RegisterValue 16 16 지정된 레지스터의 새 값을 지정합니다.

참고 항목

HV_REGISTER_NAME

HV_REGISTER_VALUE