MiVadPureReserve

NTSTATUS __stdcall MiVadPureReserve(_MMVAD_SHORT *Vad){
  union {unsigned int LongFlags;_MMVAD_FLAGS VadFlags;_MM_PRIVATE_VAD_FLAGS PrivateVadFlags;_MM_GRAPHICS_VAD_FLAGS GraphicsVadFlags;_MM_SHARED_VAD_FLAGS SharedVadFlags;volatile unsigned int VolatileVadLong;} v1; 
  void *ExtraCreateInfo; 

  v1.LongFlags = (unsigned int)Vad->u;
  if( (v1.LongFlags & 0x100000) != 0 )
  {
    if( (v1.LongFlags & 0x70) != 0 || (Vad->u1.LongFlags1 & 0x80000000) != 0 )
      return 0;
  }
  else
  {
    if( (Vad->u.LongFlags & 0xF80) != 3072 )
      return 0;
    ExtraCreateInfo = Vad[1].ExtraCreateInfo;
    if( *(_QWORD *)(*(_QWORD *)ExtraCreateInfo + 64i64)
      || (*(_DWORD *)(*(_QWORD *)ExtraCreateInfo + 56i64) & 0x1000) == 0 )
    {
      return 0;
    }
  }
  return 1;
}

Referenced by:

MiAllocateChildVads
MiCommitPageTablesForVad
MiCommitPagefileBackedSection
MiDecommitPages
MiDeleteEmptyPageTables
MiInPagePageTable
MiInsertVadCharges
MiProbeAndLockPrepare
MiQueryAddressState
MiReturnPageTablePageCommitment
MiReturnVadQuota
MiSetProtectionOnSection
MiSetReadOnlyOnSectionView
MiSplitPrivatePage
NtLockVirtualMemory