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