MiSecureVad
NTSTATUS __fastcall MiSecureVad(_MI_PARTITION *Partition, INT64 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6){
int v6;
__int64 v7;
__int64 v8;
INT64 v9;
INT64 v11;
VOID *v12;
NTSTATUS result;
_DWORD *v14;
INT64 v15;
v6 = a4;
v7 = (a2 + a3 - 1) | 0xFFF;
v8 = a2 & 0xFFFFFFFFFFFFF000ui64;
v9 = 1i64;
if( (v6 & 1) != 0 )
goto LABEL_5;
v11 = (a2 + a3 - 1) | 0xFFF;
v12 = (VOID *)(a2 & 0xFFFFFFFFFFFFF000ui64);
if( v6 != 2 )
v9 = 4i64;
LODWORD(v15) = 0;
result = MiComparePteProtections((_EPROCESS *)Partition, v12, v11, v9, v15);
if( result >= 0 )
{
LABEL_5:
v14 = MiAddSecureEntry(Partition, v8, v7, v6, a5);
*(_QWORD *)a6 = v14;
return v14 == 0i64 ? 0xC000009A : 0;
}
return result;
}Referenced by:
MiMapViewOfDataSection
MiMapViewOfImageSection
MiReserveUserMemory
MmSecureVirtualMemoryEx