[NTOS]: KiDispatchInterrupt crushes EBX, so maybe it should preserve it first? This only worked because KiDispatchInterrupt was only called by ASM code that already was magically aware of this fact, and preserved (or didn't use) EBX before making the call. Yuck!

svn path=/trunk/; revision=45212
This commit is contained in:
Sir Richard 2010-01-23 19:28:26 +00:00
parent 5c2e1ab00c
commit e18680bb11

View file

@ -320,6 +320,9 @@ _KeUpdateSystemTime@0:
.func KiDispatchInterrupt@0
_KiDispatchInterrupt@0:
/* Preserve EBX */
push ebx
/* Get the PCR and disable interrupts */
mov ebx, PCR[KPCR_SELF]
cli
@ -418,12 +421,14 @@ GetNext:
Return:
/* All done */
pop ebx
ret
QuantumEnd:
/* Disable quantum end and process it */
mov byte ptr [ebx+KPCR_PRCB_QUANTUM_END], 0
call _KiQuantumEnd@0
pop ebx
ret
.endfunc