Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Dados de contexto para uma saída Arm64 causada por um acesso a registos intercetado.
Note
Esta razão de saída e a sua estrutura de contexto aplicam-se apenas às 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ção sobre uma saída causada pelo processador virtual a aceder a um registo do sistema intercetado é fornecida na WHV_REGISTER_CONTEXT estrutura. A saída é reportada com a razão da WHvMessageTypeRegisterIntercept saída.
A saída é gerada quando o convidado escreve um dos registos sintéticos de crash do convidado — WHvRegisterGuestCrashP0 através WHvRegisterGuestCrashP4de , ou WHvRegisterGuestCrashCtl — que um convidado pode usar para reportar um crash à pilha de virtualização.
O Header membro é um WHV_INTERCEPT_MESSAGE_HEADER, que reporta o contador do programa (Pc) e o estado do processador guardado (Cpsr) no momento do acesso, juntamente com a direção do acesso em WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType (um WHV_MEMORY_ACCESS_TYPE valor).
O RegisterName membro pertence WHV_REGISTER_NAME ao registo intercetado. O AccessInfo membro carrega o valor para uma escrita de registo e identifica o destino para uma leitura de registo:
-
AccessInfo.SourceValueé aWHV_REGISTER_VALUEque transporta o valor escrito para uma escrita de registo. -
AccessInfo.DestinationRegisteré aWHV_REGISTER_NAMEque identifica o registo alvo para uma leitura de registo.
O IsMemoryOp bit indica se o acesso intercetado é uma operação de memória.