KiDebugTrapOrFaultShadow

VOID __stdcall KiDebugTrapOrFaultShadow(
        INT64 a1,
        INT64 a2,
        INT64 a3,
        UINT64 a4,
        INT64 a5,
        INT64 a6,
        INT64 a7,
        INT64 a8){
  unsigned __int64 v8; 
  unsigned __int64 KernelDirectoryTableBase; 
  char v13; 
  unsigned __int64 retaddr; 

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

Referenced by:

No references.