MiCloneImageVad
INT64 __fastcall MiCloneImageVad(INT64 a1, INT64 a2, INT64 a3){
int v3;
__int64 v5;
int v6;
unsigned int SessionId;
INT64 result;
v3 = *(_DWORD *)(a3 + 48);
v5 = **(_QWORD **)(a3 + 72);
if( (v3 & 0x100000) == 0 && (v3 & 0x70) == 32 && (v3 & 0x200000) != 0 )
{
v6 = 1;
MiCopyForkedFixupVad(a2, a3);
++*(_QWORD *)(*(_QWORD *)(a1 + 1680) + 384i64);
}
else
{
v6 = 0;
}
if( (*(_DWORD *)(v5 + 56) & 0x4000000) == 0 )
return 0i64;
SessionId = MmGetSessionIdEx(a1);
LODWORD(result) = MiCreatePerSessionProtos((_CONTROL_AREA *)v5, SessionId);
if( (int)result >= 0 )
return 0i64;
if( v6 == 1 )
--*(_QWORD *)(*(_QWORD *)(a1 + 1680) + 384i64);
return result;
}Referenced by:
MiAllocateChildVads