가로채는 레지스터 액세스로 인한 Arm64 종료에 대한 컨텍스트 데이터입니다.
메모
이 종료 이유와 컨텍스트 구조는 Arm64 파티션에만 적용됩니다.
문법
//
// Context data for an exit caused by an intercepted register access
// (WHvMessageTypeRegisterIntercept)
//
//
// Define register intercept message structure.
//
typedef union WHV_REGISTER_ACCESS_INFO
{
WHV_REGISTER_VALUE SourceValue;
WHV_REGISTER_NAME DestinationRegister;
} WHV_REGISTER_ACCESS_INFO;
typedef struct WHV_REGISTER_CONTEXT
{
WHV_INTERCEPT_MESSAGE_HEADER Header;
struct
{
UINT8 IsMemoryOp:1;
UINT8 Reserved:7;
};
UINT8 Reserved8;
UINT16 Reserved16;
WHV_REGISTER_NAME RegisterName;
WHV_REGISTER_ACCESS_INFO AccessInfo;
} WHV_REGISTER_CONTEXT;
Remarks
가로채는 시스템 레지스터에 액세스하는 가상 프로세서로 인한 종료에 대한 정보가 구조에 WHV_REGISTER_CONTEXT 제공됩니다. 출구는 종료 사유와 WHvMessageTypeRegisterIntercept 함께 보고됩니다.
종료는 게스트가 가상화 스택에 충돌을 보고하는 데 사용할 수 있는 가상 게스트 크래시 레지스터 WHvRegisterGuestCrashP0 중 하나를 통해 WHvRegisterGuestCrashP4작성할 WHvRegisterGuestCrashCtl 때 생성됩니다.
멤버는 HeaderWHV_INTERCEPT_MESSAGE_HEADER액세스 시 프로그램 카운터(Pc) 및 저장된 프로세서 상태(Cpsr)와 액세스 방향 WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType (값)을 보고하는 멤버입니다 WHV_MEMORY_ACCESS_TYPE .
멤버는 RegisterName 가로채는 레지스터의 멤버입니다 WHV_REGISTER_NAME . 멤버는 AccessInfo 레지스터 쓰기에 대한 값을 전달하고 레지스터 읽기의 대상을 식별합니다.
-
AccessInfo.SourceValueWHV_REGISTER_VALUE는 레지스터 쓰기에 대해 작성된 값을 전달하는 값입니다. -
AccessInfo.DestinationRegister는WHV_REGISTER_NAME레지스터 읽기에 대한 대상 레지스터를 식별하는 입니다.
비트는 IsMemoryOp 가로채는 액세스가 메모리 작업인지 여부를 나타냅니다.