IopMarkPagesForRunTimeTriageDataBlocks
__int64 __fastcall IopMarkPagesForRunTimeTriageDataBlocks(
__int64 (__fastcall **a1)(_QWORD, __int64, __int64),
__int64 a2,
unsigned __int64 a3,
unsigned __int64 a4){
__int64 MaxValidMemorySizeDown;
int MaxValidMemorySize;
__int64 result;
unsigned int v11;
char *v12;
unsigned __int16 v13;
unsigned __int64 v14;
MaxValidMemorySizeDown = (unsigned int)IopGetMaxValidMemorySizeDown(*(PVOID *)(a2 + 248));
MaxValidMemorySize = IopGetMaxValidMemorySize(*(PVOID *)(a2 + 248), 0x100ui64);
result = MmAddRangeToCrashDump(
a1,
*(_QWORD *)(a2 + 248) - MaxValidMemorySizeDown,
(unsigned int)(MaxValidMemorySize + MaxValidMemorySizeDown));
v11 = result;
if( (int)result >= 0 )
{
v12 = &IopRunTimeContextOffsets;
v13 = 144;
while( 1 )
{
v14 = *(_QWORD *)(v13 + a2);
if( v14 < a3 || v14 >= a4 )
{
result = MmAddRangeToCrashDump(a1, v14 & 0xFFFFFFFFFFFFF000ui64, 4096i64);
v11 = result;
if( (int)result < 0 )
break;
}
v12 += 2;
v13 = *(_WORD *)v12;
if( *(_WORD *)v12 == 0xFFFF )
return v11;
}
}
return result;
}Referenced by:
IopAddMiniDumpPagesToPartialKernelDump