MiPfCompletePrefetchIos
NTSTATUS __stdcall MiPfCompletePrefetchIos(
_LIST_ENTRY *IssuedSupportHead,
_LIST_ENTRY *BuiltSupportHead,
_MMSUPPORT_INSTANCE *Vm){
NTSTATUS v5;
_LIST_ENTRY *Flink;
_LIST_ENTRY *v7;
int v8;
if( BuiltSupportHead )
MiPfCoalesceAndIssueIOs((union _MM_STORE_KEY *)BuiltSupportHead, (union _SM_PAGE_KEY *)IssuedSupportHead);
v5 = 0;
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 )
v8 = MiPfCompleteCoalescedIo((CHAR *)Flink, (CHAR *)Vm);
else
v8 = MiPfCompleteInPageSupport((UINT64)Flink, (CHAR *)Vm);
if( v8 < 0 && v8 != -1073740748 )
v5 = v8;
}
return v5;
}Referenced by:
MiPrefetchControlArea
MiPrefetchVirtualMemory
MmPrefetchPagesEx
MmWaitForCacheManagerPrefetch