HvCallStartVirtualProcessor

HvCallStartVirtualProcessor는 가상 프로세서를 시작하는 데 사용할 수 있는 방법입니다. VP가 원하는 레지스터 상태로 시작할 수 있다는 점을 제외하고 기존 INIT 기반 메서드와 기능적으로 동일합니다.

0이 아닌 VTL에서 VP를 시작하는 유일한 방법입니다.

인터페이스

HV_STATUS
HvCallStartVirtualProcessor(
   _In_ HV_PARTITION_ID PartitionId,
   _In_ HV_VP_INDEX VpIndex,
   _In_ HV_VTL TargetVtl,
   _In_ HV_INITIAL_VP_CONTEXT VpContext
   );

호출 코드

0x0099 (단순)

입력 매개 변수

이름 Offset 크기 제공된 정보
PartitionId 0 8 파티션
VpIndex 8 4 시작할 VP 인덱스입니다. APIC ID에서 VP 인덱스를 가져오려면 HvGetVpIndexFromApicId를 사용합니다.
TargetVtl 12 1 대상 VTL
VpContext 16 224 VP를 시작해야 하는 초기 컨텍스트를 지정합니다.

반환 값

상태 코드 오류 조건
HV_STATUS_ACCESS_DENIED 액세스 거부됨
HV_STATUS_INVALID_PARTITION_ID 지정한 파티션 ID가 잘못되었습니다.
HV_STATUS_INVALID_VP_INDEX HV_VP_INDEX 지정한 가상 프로세서가 잘못되었습니다.
HV_STATUS_INVALID_REGISTER_VALUE 제공한 레지스트리 값이 잘못되었습니다.
HV_STATUS_INVALID_VP_STATE 지정된 작업에 대한 가상 프로세서의 상태가 올바르지 않습니다.
HV_STATUS_INVALID_PARTITION_STATE 지정한 파티션이 "활성" 상태가 아닙니다.
HV_STATUS_INVALID_VTL_STATE VTL 상태가 요청한 작업과 충돌합니다.

참조

HV_INITIAL_VP_CONTEXT