IopLiveDumpDiscardVirtualAddressRange
INT64 IopLiveDumpDiscardVirtualAddressRange(void){
INT64 result;
char *v1;
__int64 v2;
unsigned __int64 v3;
char *v4;
__int64 v5;
unsigned __int64 i;
if( v3 )
{
v4 = v1;
v5 = v2;
if( v1 )
{
for( i = (v3 >> 12) + ((v3 & 0xFFF) != 0); i; --i )
{
MmIsAddressValid(v4);
if( (_BYTE)result )
{
result = (unsigned __int64)MmGetPhysicalAddress(v4).QuadPart >> 12;
if( (unsigned __int64)result < *(_QWORD *)(v5 + 576) )
RtlClearBitsEx(v5 + 576, result, 1ui64);
}
v4 += 4096;
}
}
}
return result;
}Referenced by:
IopLiveDumpAllocAndInitResources
IopLiveDumpAllocateDumpBuffers
IopLiveDumpAllocateExtraBuffers
IopLiveDumpAllocateIptBuffers