MiShowBadMapper
VOID __stdcall MiShowBadMapper(UINT64 PageFrameIndex, UINT64 Flags){
char v2;
char v4;
unsigned int v5;
unsigned __int64 *v6;
__int64 v7;
char OldIrql[4];
int BackTraceHash[3];
PVOID BackTrace[8];
BackTraceHash[0] = 0;
v2 = Flags;
OldIrql[0] = 0;
memset((INT64)BackTrace, 0i64);
v4 = byte_140C4E53B;
if( byte_140C4E53B )
goto LABEL_15;
if( (v2 & 1) != 0 && KdPitchDebugger == byte_140C4E53B && (_BYTE)KdDebuggerNotPresent == byte_140C4E53B )
LABEL_16:
KeBugCheckEx(0x1Au, 0x1233ui64, PageFrameIndex, 0i64, 0i64);
if( (v2 & 4) != 0 )
{
RtlCaptureStackBackTrace(1ui64, 8ui64, BackTrace, (UINT64 *)BackTraceHash);
MmLockLoadedModuleListExclusive((UINT8 *)OldIrql);
v5 = 0;
v6 = (unsigned __int64 *)BackTrace;
while( *v6 > 0x7FFFFFFEFFFFi64 )
{
v7 = MiLookupDataTableEntry(*v6, 0);
if( v7 && (*(_DWORD *)(v7 + 104) & 0x2000000) != 0 && (MmVerifierData & 0x400000) == 0 )
{
v4 = 1;
break;
}
++v5;
++v6;
if( v5 >= 8 )
break;
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)PsLoadedModuleSpinLock);
__writecr8((unsigned __int8)OldIrql[0]);
LABEL_15:
if( v4 == 1 )
goto LABEL_16;
}
}Referenced by:
MiDeletePteRun
MiFillSystemPtes
MiInsertPhysicalPteMapping
MiMapMdlCommon