MiCreateUserPhysicalView
VOID __fastcall MiCreateUserPhysicalView(_MMVAD_SHORT *Vad, INT64 a2, INT64 a3, _WORD *a4){
__int64 v5;
char v7;
unsigned int v8;
INT64 v9;
int v10;
_QWORD *Pool;
_QWORD *v12;
_WORD *v13;
v5 = *(_QWORD *)(a3 + 112);
v7 = a2;
if( v5 )
{
v8 = (unsigned __int64)(a2 & 4 | 8) >> 1;
v9 = v8 | 8;
if( (v7 & 2) == 0 )
v9 = v8;
MiReferenceAweHandle(v5, v9);
}
else if( (*(_QWORD *)(a3 + 120) & 0xA) == 0 && (_DWORD)a2 == 4 )
{
MiCreateProcessDefaultAweInfo();
if( v10 >= 0 )
{
Pool = MiAllocatePool(64i64, 0x48ui64, 0x76706D4Dui64);
v12 = Pool;
if( Pool )
{
*((_DWORD *)Pool + 16) = 256;
Pool[4] = Vad;
Pool[5] = 0i64;
LODWORD(v13) = MiGetAweInfoPartition(0i64);
*a4 = *v13;
v12[3] = 0i64;
MiInsertVadEvent((__int64)Vad, v12, 0);
}
}
}
}Referenced by:
MiReserveUserMemory