MiPfCompletePrefetchIos
VOID __stdcall MiPfCompletePrefetchIos(
_LIST_ENTRY *IssuedSupportHead,
_LIST_ENTRY *BuiltSupportHead,
_MMSUPPORT_INSTANCE *Vm,
CHAR a4){
_LIST_ENTRY *Flink;
_LIST_ENTRY *v7;
if( BuiltSupportHead )
MiPfCoalesceAndIssueIOs(BuiltSupportHead, IssuedSupportHead, 0i64);
while( 1 )
{
Flink = IssuedSupportHead->Flink;
if( IssuedSupportHead->Flink == IssuedSupportHead )
break;
if( Flink->Blink != IssuedSupportHead || (v7 = Flink->Flink, Flink->Flink->Blink != Flink) )
__fastfail(3u);
IssuedSupportHead->Flink = v7;
v7->Blink = IssuedSupportHead;
if( ((__int64)Flink[12].Flink & 0x800000) != 0 )
MiPfCompleteCoalescedIo(Flink, Vm);
else
MiPfCompleteInPageSupport((ULONG_PTR)Flink, Vm);
}
}Referenced by:
MiPrefetchControlArea
MiPrefetchVirtualMemory
MmPrefetchPagesEx
MmWaitForCacheManagerPrefetch