Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контекстные данные для выхода Arm64, вызванные перехватанным доступом к регистру.
Note
Эта причина выхода и ее структура контекста применяются только к секциям Arm64.
Синтаксис
//
// 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
Сведения о выходе, вызванном виртуальным процессором, обращаюющимся к перехваченной системной регистрации, предоставляются в WHV_REGISTER_CONTEXT структуре. Сообщается о выходе WHvMessageTypeRegisterIntercept с причиной выхода.
Выход создается, когда гость записывает один из искусственных регистров гостевой аварийной аварии ( WHvRegisterGuestCrashP0 через WHvRegisterGuestCrashP4или WHvRegisterGuestCrashCtl ), через которые гость может сообщить о сбое в стек виртуализации.
Элемент Header — это WHV_INTERCEPT_MESSAGE_HEADERэлемент, который сообщает счетчик программы (Pc) и сохраненное состояние процессора (Cpsr) во время доступа, а также направление доступа ( WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessTypeWHV_MEMORY_ACCESS_TYPE значение).
Участником RegisterName является WHV_REGISTER_NAME перехватанный регистр. Элемент AccessInfo содержит значение для записи регистра и определяет целевой объект для чтения регистра:
-
AccessInfo.SourceValueWHV_REGISTER_VALUE— это значение, написанное для записи регистра. -
AccessInfo.DestinationRegister— это объектWHV_REGISTER_NAME, определяющий целевой регистр для чтения регистра.
Бит IsMemoryOp указывает, является ли перехватанный доступ операцией памяти.