-
Notifications
You must be signed in to change notification settings - Fork 261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enabling interrupts in VMEXIT? #36
Comments
It sounds like you are corrupting the register state when making the vmcall. I know that SimpleVisor doesn't use a lot of assembly to handle entry into the VMM so I wonder if you are assuming the ABI is being respected here. |
Actually, it was due to tandasat/HyperPlatform#3 (comment)
So what I did to solve it was: My solution to this problem is to attempt to queue the requests into a static array of (p.s. @rianquinn not sure what you're saying? It's late here so i'll just re-read your post tomorrow to see if I can wrap my head around it, but it seems like you're thinking of something else). |
I'm trying to implement a vmcall to read memory from another process, but I get BSOD with
DRIVER_IRQL_NOT_LESS_OR_EQUAL
.It says IRQL is 0xFF, but when I check with KeGetCurrentIrql() it gives me 0(
PASSIVE_LEVEL
)?The vmcall is made from the usermode app -> causes vmexit -> which executes vmcall handler.
I store in
RCX
the call index(VMCallFuncIndex),RDX
containing a usermode pointer to a structure of data for the memory i/o request,R8
as current process(GetCurrentProcessId()
currently for testing),The code looks correct to me, so i'm not sure what is wrong.
(1 hour later)
So I opened up the crash dump in windbg and the first thing I noticed is:
FAILURE_ID_HASH_STRING: km:disabled_interrupt_fault_stackptr_error_hypervisor!vmxhandlevmcall
Which makes me speculate: Are interrupts disabled?
So I searched already opened issues on SV, and found this:
#3
So I decided to try it myself:
But I still get BSOD, however while it's still the same old
DRIVER_IRQL_NOT_LESS_OR_EQUAL
, this time it shows the IRQL as being 0x2.It shows the faulting
IP
as being:which seems to be this line:
So i'm not sure what's going on.
The text was updated successfully, but these errors were encountered: