Registrar Saída do Intercept

Dados de contexto de uma saída do Arm64 causada por um acesso de registro interceptado.

Observação

Esse motivo de saída e sua estrutura de contexto se aplicam apenas a partições Arm64.

Sintaxe

//
// 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

Informações sobre uma saída causada pelo processador virtual que acessa um registro do sistema interceptado são fornecidas na WHV_REGISTER_CONTEXT estrutura. A saída é relatada com o motivo da WHvMessageTypeRegisterIntercept saída.

A saída é gerada quando o convidado grava um dos registros de falha de convidado sintético – WHvRegisterGuestCrashP0 por meio WHvRegisterGuestCrashP4ou WHvRegisterGuestCrashCtl – que um convidado pode usar para relatar uma falha na pilha de virtualização.

O Header membro é um WHV_INTERCEPT_MESSAGE_HEADER, que relata o contador do programa (Pc) e o estado do processador salvo (Cpsr) no momento do acesso, juntamente com a direção de acesso em WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType (um WHV_MEMORY_ACCESS_TYPE valor).

O RegisterName membro é o WHV_REGISTER_NAME do registro interceptado. O AccessInfo membro carrega o valor de uma gravação de registro e identifica o destino de um registro de leitura:

  • AccessInfo.SourceValue é um WHV_REGISTER_VALUE que carrega o valor gravado para uma gravação de registro.
  • AccessInfo.DestinationRegister é um WHV_REGISTER_NAME que identifica o registro de destino para uma leitura de registro.

O IsMemoryOp bit indica se o acesso interceptado é uma operação de memória.

Consulte também