HalpIommuCreateDmarPageTable
INT64 __fastcall HalpIommuCreateDmarPageTable(INT64 a1, UINT64 a2, UINT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 *a7){
unsigned int v7;
unsigned int v8;
unsigned int v9;
INT64 MemoryInternal;
INT64 v11;
__int64 v12;
__int64 v14;
int v15;
INT64 v16;
v7 = a3;
v8 = a2;
v9 = a1;
if( a6 )
MemoryInternal = (INT64)HalpMmAllocateMemoryInternal(0x60ui64, MmCached);
else
MemoryInternal = HalpMmAllocCtxAlloc(a1, 96i64);
v12 = MemoryInternal;
if( !MemoryInternal )
return 3221225626i64;
if( v7 > 6 || v8 < 2 || v7 < v8 )
return 3221225485i64;
v15 = HalpIommuInitializeDmarPageTable(v9, v8, v7, v11, v16, a6, MemoryInternal);
if( v15 < 0 )
{
*a7 = 0i64;
if( !a6 )
HalpMmAllocCtxFree(v14, v12);
}
else
{
*a7 = v12;
}
return(unsigned int)v15;
}Referenced by:
HalpIommuAllocateDmaDomain
HalpIommuConstructReservedPageTable