MmWaitForCacheManagerPrefetch

NTSTATUS __stdcall MmWaitForCacheManagerPrefetch(SINGLE_LIST_ENTRY *OpaqueWaitBlock){
  int Next; 
  SINGLE_LIST_ENTRY *v2; 
  NTSTATUS v3; 
  _SINGLE_LIST_ENTRY *v4; 
  NTSTATUS v5; 
  Next = (int)OpaqueWaitBlock[13].Next;
  v2 = OpaqueWaitBlock;
  v3 = 0;
  do
  {
    v4 = v2->Next;
    v5 = MiPfCompletePrefetchIos((_LIST_ENTRY *)&v2[15], 0i64, 0i64);
    MiReleaseReadListResources((INT64)v2);
    ExFreePoolWithTag(v2, 0);
    v2 = v4;
    if( v5 < 0 )
      v3 = v5;
  }
  while( v4 );
  if( (Next & 1) != 0 )
    KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  return v3;
}

Referenced by:

CcPerformReadAhead