MiReduceMappedFileReadAhead
NTSTATUS __stdcall MiReduceMappedFileReadAhead(PRTL_BITMAP BitMapHeader, UINT32 StartingIndex){
unsigned int v2;
unsigned int v3;
unsigned int SizeOfBitMap;
unsigned int v7;
unsigned int LastBackwardRunClear;
unsigned int v9;
UINT64 StartingRunIndex;
LODWORD(StartingRunIndex) = 0;
v3 = v2;
RtlSetBits(BitMapHeader, *(UINT64 *)&StartingIndex, 1ui64);
SizeOfBitMap = BitMapHeader->SizeOfBitMap;
do
{
v7 = SizeOfBitMap - 1;
if( !v7 )
break;
LastBackwardRunClear = RtlFindLastBackwardRunClear(BitMapHeader, v7, &StartingRunIndex);
SizeOfBitMap = StartingRunIndex;
v9 = LastBackwardRunClear;
if( LastBackwardRunClear > v3 )
{
SizeOfBitMap = LastBackwardRunClear - v3 + StartingRunIndex;
v9 = v3;
LODWORD(StartingRunIndex) = SizeOfBitMap;
}
RtlSetBits(BitMapHeader, SizeOfBitMap, v9);
v3 -= v9;
}
while( v3 );
return(unsigned int)RtlClearBits(BitMapHeader, StartingIndex, 1u);
}Referenced by:
MiBuildMdlForMappedFileFault