Onderscheppingsafsluiten registreren

Contextgegevens voor een Arm64-uitgang veroorzaakt door een onderschepte registertoegang.

Note

Deze afsluitreden en de contextstructuur zijn alleen van toepassing op Arm64-partities.

Syntaxis

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

Informatie over een uitgang die wordt veroorzaakt door de virtuele processor die toegang heeft tot een onderschept systeemregister, wordt geleverd in de WHV_REGISTER_CONTEXT structuur. De uitgang wordt gerapporteerd met de reden van de WHvMessageTypeRegisterIntercept uitgang.

De uitgang wordt gegenereerd wanneer de gast een van de synthetische gastcrashregisters schrijft ( WHvRegisterGuestCrashP0 via WHvRegisterGuestCrashP4of WHvRegisterGuestCrashCtl ) die een gast kan gebruiken om een crash naar de virtualisatiestack te rapporteren.

Het Header lid is een WHV_INTERCEPT_MESSAGE_HEADER, waarmee de programmateller (Pc) en de opgeslagen processorstatus (Cpsr) op het moment van de toegang worden gerapporteerd, samen met de toegangsrichting in WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType (een WHV_MEMORY_ACCESS_TYPE waarde).

Het RegisterName lid is het WHV_REGISTER_NAME van het onderschepte register. Het AccessInfo lid draagt de waarde voor een schrijfbewerking van een register en identificeert het doel voor een registerleesbewerking:

  • AccessInfo.SourceValue is een WHV_REGISTER_VALUE waarde die de waarde bevat die is geschreven voor een schrijfbewerking van een register.
  • AccessInfo.DestinationRegister is een WHV_REGISTER_NAME register dat het doelregister identificeert voor een gelezen register.

De IsMemoryOp bit geeft aan of de onderschepte toegang een geheugenbewerking is.

Zie ook