MmWaitForCacheManagerPrefetch

NTSTATUS __stdcall MmWaitForCacheManagerPrefetch(_SINGLE_LIST_ENTRY *OpaqueWaitBlock){
  CHAR v1; 
  int Next; 
  _SINGLE_LIST_ENTRY *v3; 
  NTSTATUS v4; 
  _SINGLE_LIST_ENTRY *v5; 
  int v6; 
  int v7; 
  UINT64 v8; 

  Next = (int)OpaqueWaitBlock[13].Next;
  v3 = OpaqueWaitBlock;
  v4 = 0;
  do
  {
    v5 = v3->Next;
    MiPfCompletePrefetchIos((_LIST_ENTRY *)&v3[15], 0i64, 0i64, v1);
    v7 = v6;
    MiReleaseReadListResources((_MI_READ_LIST *)v3, v8);
    ExFreePoolWithTag(v3, 0);
    v3 = v5;
    if( v7 < 0 )
      v4 = v7;
  }
  while( v5 );
  if( (Next & 1) != 0 )
    KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  return v4;
}

Referenced by:

CcPerformReadAhead