Zaregistrovat ukončení průsečíku

Kontextová data pro ukončení Arm64 způsobená zachyceným přístupem k registraci

Poznámka:

Tento důvod ukončení a jeho kontextová struktura se vztahují pouze na oddíly Arm64.

Syntaxe

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

Informace o ukončení způsobeném virtuálním procesorem, který přistupuje k zachycené systémové registraci, jsou uvedeny ve struktuře WHV_REGISTER_CONTEXT . Výstup se ohlásí s WHvMessageTypeRegisterIntercept důvodem ukončení.

Ukončení se vygeneruje, když host zapíše některý ze syntetických registrů chyb hosta – WHvRegisterGuestCrashP0 prostřednictvím WHvRegisterGuestCrashP4nebo WHvRegisterGuestCrashCtl – který host může použít k nahlášení chybového ukončení do zásobníku virtualizace.

Člen Header je WHV_INTERCEPT_MESSAGE_HEADER, který hlásí čítač programu (Pc) a uložený stav procesoru (Cpsr) v době přístupu spolu se směrem přístupu ( WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessTypeWHV_MEMORY_ACCESS_TYPE hodnota).

Člen RegisterName je WHV_REGISTER_NAME zachycený registr. Člen AccessInfo má hodnotu zápisu registru a identifikuje cíl čtení registru:

  • AccessInfo.SourceValue je hodnota WHV_REGISTER_VALUE zapsaná pro zápis do registru.
  • AccessInfo.DestinationRegister je objekt, WHV_REGISTER_NAME který identifikuje cílový registr pro čtení registru.

Bit IsMemoryOp označuje, jestli je zachycený přístup operací paměti.

Viz také