Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kontextdaten für einen Arm64-Exit, der durch einen abgefangenen Registerzugriff verursacht wurde.
Note
Dieser Ausgangsgrund und seine Kontextstruktur gelten nur für Arm64-Partitionen.
Syntax
//
// 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
Informationen zum Beenden durch den virtuellen Prozessor, der auf ein abgefangenes Systemregister zugreift, werden in der WHV_REGISTER_CONTEXT Struktur bereitgestellt. Der Ausgang wird mit dem WHvMessageTypeRegisterIntercept Ausgangsgrund gemeldet.
Das Beenden wird generiert, wenn der Gast eins der synthetischen Gastabsturzregister schreibt – WHvRegisterGuestCrashP0 über WHvRegisterGuestCrashP4oder WHvRegisterGuestCrashCtl – die ein Gast verwenden kann, um einen Absturz an den Virtualisierungsstapel zu melden.
Das Header Mitglied ist ein WHV_INTERCEPT_MESSAGE_HEADER, der den Programmzähler (Pc) und den gespeicherten Prozessorzustand (Cpsr) zum Zeitpunkt des Zugriffs meldet, zusammen mit der Zugriffsrichtung in WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType (einem WHV_MEMORY_ACCESS_TYPE Wert).
Das RegisterName Element ist das WHV_REGISTER_NAME abgefangene Register. Das AccessInfo Element trägt den Wert für einen Registerschreibvorgang und identifiziert das Ziel für ein Registerlesevorgang:
-
AccessInfo.SourceValueist einWHV_REGISTER_VALUEWert, der für einen Registerschreibwert geschrieben wird. -
AccessInfo.DestinationRegisterist eineWHV_REGISTER_NAME, die das Zielregister für ein Register mit Lesezugriff identifiziert.
Das IsMemoryOp Bit gibt an, ob der abgefangene Zugriff ein Speichervorgang ist.