I am currently writing a small hypervisor and I am having trouble understanding how to handle the APIC access VMExit.
My guest is writing something at offset 0x300 of the APIC page. The guest is in real mode and using EPT. The address used by the guest resolves to 0x4000 after EPT translation and
I have also set a virtual APIC page (VMCS_VIRTUAL_APIC_PAGE_ADDR=0x8000)
I am getting an APIC-Access VMExit but in my handler I am trying to get the value that was written to the APIC page. I can't find the value in 0x4000 nor in 0x8000.
I'd like to know what is the operation to be made in this handler. Am I supposed to decode the guest instruction in order to get the value that was attempted to be written? or am I supposed to have an easier way provided by the VMX architecture to access that value?