MiReferenceInPageFile

_FILE_OBJECT *__stdcall MiReferenceInPageFile(_MMINPAGE_SUPPORT *ReadBlock, UINT64 SessionId){
  _CONTROL_AREA *ControlArea; 
  unsigned int v3; 
  _FILE_OBJECT *v5; 
  _MDL *PrefetchMdl; 
  _MI_IMAGE_SECURITY_REFERENCE *SeImageStub; 
  _MMPFN *v9; 
  __int32 bf_0; 

  ControlArea = ReadBlock->ControlArea;
  v3 = SessionId;
  if( !ControlArea )
    return 0i64;
  v5 = MiReferenceControlAreaFile(ReadBlock->ControlArea);
  if( (ControlArea->u.LongFlags & 0x20) != 0 )
  {
    _InterlockedIncrement64((volatile signed __int64 *)&ControlArea->LockedPages);
    PrefetchMdl = ReadBlock->PrefetchMdl;
    SeImageStub = ControlArea->u2.SeImageStub;
    if( !PrefetchMdl )
      PrefetchMdl = &ReadBlock->Mdl;
    v9 = &MmGetPfnDb()[(__int64)PrefetchMdl[1].Next];
    ReadBlock->u3.ImagePteOffset = MiComputeImagePteIndex(v9, v3);
    if( SeImageStub->DynamicRelocations )
    {
      bf_0 = ReadBlock->u1.e1._bf_0;
      ReadBlock->u1.e1._bf_0 = bf_0 | 0x10000;
      if( (MiFlags & 0x40000) != 0
        && (!MiCanPageMove(v9)
         || (ControlArea->u2.WritableUserReferences & 0xC0000) != 0
         && (((unsigned __int8)MI_READ_PTE_LOCK_FREE((INT64)&v9->OriginalPte.u.Hard) >> 5) & 2) != 0) )
      {
        ReadBlock->u1.e1._bf_0 = bf_0 & 0xFFFEFFFF;
      }
    }
  }
  else
  {
    ReadBlock->ControlArea = 0i64;
  }
  return v5;
}

Referenced by:

MiIssueHardFault
MiPfExecuteReadList