KiNmiInterruptShadow

void __fastcall KiNmiInterruptShadow(
        UINT64 a1,
        UINT64 a2,
        UINT64 a3,
        UINT64 a4,
        INT64 a5,
        INT64 a6,
        INT64 a7,
        INT64 a8){
  unsigned __int64 v8; 
  unsigned __int64 KernelDirectoryTableBase; 
  unsigned __int64 retaddr; 

  __readmsr(0xC0000101);
  __writemsr(0xC0000101, retaddr);
  v8 = __readcr3();
  KernelDirectoryTableBase = KeGetPcr()->Prcb.KernelDirectoryTableBase;
  if( v8 != KernelDirectoryTableBase && !_bittest(MK_FP(__GS__, 36888i64), 1u) )
    __writecr3(KernelDirectoryTableBase);
  KiNmiInterruptStart(a1, a2, a3, a4, a5, a6, a7, a8);
}

Referenced by:

No references.