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 상태가 요청한 작업과 충돌합니다. |