Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kesilen kayıt erişimi nedeniyle arm64 çıkışı için bağlam verileri.
Note
Bu çıkış nedeni ve bağlam yapısı yalnızca Arm64 bölümleri için geçerlidir.
Sözdizimi
//
// 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;
Açıklamalar
Kesilen bir sistem kaydına erişen sanal işlemcinin neden olduğu çıkışla ilgili bilgiler yapıda WHV_REGISTER_CONTEXT sağlanır. Çıkış, çıkış nedeni ile WHvMessageTypeRegisterIntercept bildirilir.
Çıkış, konuk sanallaştırma yığınına kilitlenme bildirmek için kullanabileceği yapay konuk kilitlenme yazmaçlarından birini ( WHvRegisterGuestCrashP0 aracılığıyla WHvRegisterGuestCrashP4veya WHvRegisterGuestCrashCtl ) yazdığında oluşturulur.
ÜyeHeader, erişim sırasında program sayacını (Pc) ve kaydedilmiş işlemci durumunu (Cpsr) ve içindeki erişim yönünü (bir değer) bildiren bir WHV_INTERCEPT_MESSAGE_HEADERWHV_MEMORY_ACCESS_TYPE değeridir WHV_INTERCEPT_MESSAGE_HEADER.InterceptAccessType .
Üye RegisterName , WHV_REGISTER_NAME araya girilen yazmaçtır. Üye, AccessInfo yazmaç yazmaç değerini taşır ve yazmaç okuması için hedefi tanımlar:
-
AccessInfo.SourceValueyazmaçWHV_REGISTER_VALUEyazmaç için yazılan değeri taşıyan bir değerdir. -
AccessInfo.DestinationRegister,WHV_REGISTER_NAMEbir yazmaç okuması için hedef yazmaç tanımlayan bir kayıttır.
Bit, IsMemoryOp kesilen erişimin bir bellek işlemi olup olmadığını gösterir.