IopLiveDumpDiscardVirtualAddressRange
VOID __stdcall IopLiveDumpDiscardVirtualAddressRange(
_LIVEDUMP_CONTEXT *Context,
VOID *VirtualAddress,
UINT64 NumberOfBytes){
char *v3;
UINT64 i;
unsigned __int64 v6;
UINT64 v7;
if( NumberOfBytes )
{
v3 = (char *)VirtualAddress;
if( VirtualAddress )
{
for( i = (NumberOfBytes >> 12) + ((NumberOfBytes & 0xFFF) != 0); i; --i )
{
if( MmIsAddressValid((INT64)v3) )
{
LODWORD(v6) = MmGetPhysicalAddress((UINT64)v3);
v7 = v6 >> 12;
if( v7 < *((_QWORD *)Context + 72) )
RtlClearBitsEx((_RTL_BITMAP_EX *)Context + 36, v7, 1ui64);
}
v3 += 4096;
}
}
}
}Referenced by:
IopLiveDumpAllocAndInitResources
IopLiveDumpAllocateDumpBuffers
IopLiveDumpAllocateExtraBuffers
IopLiveDumpAllocateIptBuffers