HvpViewMapStart
NTSTATUS __fastcall HvpViewMapStart(INT64 a1, VOID *a2, int a3, __int64 a4, int a5){
char v5;
NTSTATUS result;
__int64 v9;
INT64 v10;
__int64 v11;
v5 = a5;
*(_DWORD *)(a1 + 32) = a5;
*(_QWORD *)(a1 + 24) = a4;
v11 = 0i64;
result = CmSiCreateSectionForFile((VOID **)a1, (v5 & 1) != 0 ? 5 : 23, 2 * !(v5 & 1) + 2, a4, a2);
if( result >= 0 )
{
result = CmSiGetSectionLength(*(VOID **)a1, &v11);
if( result >= 0 )
{
v9 = v11;
*(_QWORD *)(a1 + 16) = v11;
if( v9 < 4096 )
{
return -1073741492;
}
else
{
v10 = (unsigned int)(a3 + 4096);
*(_QWORD *)(a1 + 8) = v10;
result = HvpViewMapCreateViewsForRegion(a1, 4096i64, v10, 1);
if( result >= 0 )
return 0;
}
}
}
return result;
}Referenced by:
HvHiveStartEmptyClone