MiFreeReadListPages
VOID __stdcall MiFreeReadListPages(_MI_READ_LIST *MiReadList, UINT64 a2){
UINT64 v3;
_MI_PARTITION *v4;
UINT64 v5;
INT64 *v6;
__int64 v7;
__int64 v8;
INT64 v9;
UINT64 v10;
_MMPFN *v11;
_MI_PARTITION *v12;
_MI_PARTITION *Partition;
Partition = 0i64;
LODWORD(v3) = MiFreeReadListPageList((INT64 *)MiReadList + 5, (INT64 *)&Partition);
v4 = Partition;
v5 = v3;
v6 = (INT64 *)(MiReadList + 12);
v7 = 4i64;
do
{
v8 = 0i64;
while( *v6 )
{
LODWORD(v9) = MiGetPfnLink(*v6);
*v6 = v9;
if( !v4 )
{
LODWORD(v12) = MiPartitionIdToPointer(((unsigned __int64)v11->u4._bf_0 >> 39) & 0x3FF, v10);
v4 = v12;
}
MiReleaseFreshPage(v11);
++v8;
}
v5 += v8;
++v6;
--v7;
}
while( v7 );
if( v5 )
MiReturnFaultCharges(v4, v5, 1ui64);
}Referenced by:
MiPfPutPagesInTransition
MiReleaseReadListResources