MiComputeCommitChargeForZeroPteRange
UINT64 __stdcall MiComputeCommitChargeForZeroPteRange(_MMVAD_SHORT *Vad, _MMPTE *PointerPte, UINT64 NumberOfPages){
UINT64 v3;
int v5;
UINT64 v6;
unsigned __int64 v8;
__int64 v9;
UINT64 PagesProcessedOut;
v3 = 0i64;
v5 = *((_DWORD *)Vad + 12);
v6 = NumberOfPages;
PagesProcessedOut = 0i64;
if( (v5 & 0x100000) != 0 )
{
if( *((int *)Vad + 13) >= 0 )
return 0i64;
return v6;
}
if( (v5 & 0x70) != 32 )
{
if( (v5 & 0x280) != 640 )
return 0i64;
return v6;
}
v8 = (unsigned __int64)((__int64)(((_QWORD)PointerPte << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16) >> 12;
if( NumberOfPages )
{
do
{
MiComputeImageVadCommitCharge((_MMVAD *)Vad, v8, v6, &PagesProcessedOut);
v8 += PagesProcessedOut;
v3 += v9;
v6 -= PagesProcessedOut;
}
while( v6 );
}
return v3;
}Referenced by:
MiCheckCommitReleaseFromVad