인터셉트 종료 등록

가로채는 레지스터 액세스로 인한 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.SourceValue WHV_REGISTER_VALUE 는 레지스터 쓰기에 대해 작성된 값을 전달하는 값입니다.
  • AccessInfo.DestinationRegisterWHV_REGISTER_NAME 레지스터 읽기에 대한 대상 레지스터를 식별하는 입니다.

비트는 IsMemoryOp 가로채는 액세스가 메모리 작업인지 여부를 나타냅니다.

참고하십시오