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