IopGetMaxValidMemorySize
UINT64 __stdcall IopGetMaxValidMemorySize(PVOID Base, UINT64 MaxSize){
int v2;
unsigned int v3;
unsigned __int64 v4;
unsigned int v5;
v2 = 4096 - ((unsigned __int16)Base & 0xFFF);
v3 = 0;
v4 = (unsigned __int64)Base & 0xFFFFFFFFFFFFF000ui64;
v5 = MaxSize;
if( !(_DWORD)MaxSize )
return v5;
do
{
if( !MmIsAddressValidEx(v4) )
break;
v3 += v2;
v4 += 4096i64;
if( !v4 )
break;
v2 = 4096;
}
while( v3 < v5 );
if( v3 >= v5 )
return v5;
return v3;
}Referenced by:
IoFillTriageDumpBuffer
IopAddBugcheckTriageThread
IopAddRunTimeTriageDataBlocks
IopCalculateStackInformation
IopMarkPagesForRunTimeTriageDataBlocks
IopUpdateMinidumpContext