HalpIommuJoinDmaDomain
INT64 __fastcall HalpIommuJoinDmaDomain(INT64 *a1, LONGLONG a2){
INT64 v4;
int v5;
INT64 result;
LARGE_INTEGER *v7;
int v8;
int v9;
INT64 v10;
__int64 v11;
LARGE_INTEGER *v12;
v9 = 0;
v11 = 0i64;
v12 = 0i64;
if( HalpHvIommu )
{
v4 = a1[3];
v12 = 0i64;
v9 = 0;
v11 = 0i64;
v10 = v4;
LODWORD(v12) = *(_DWORD *)(a2 + 32);
BYTE4(v12) = *(_BYTE *)(a2 + 40);
v8 = 4;
return(unsigned int)((__int64(__fastcall *)(int *, LARGE_INTEGER **))qword_140C4A2B8)(&v8, &v12);
}
else
{
result = HalpIommuGetHardwareDomain(a2, a1[1], 1, 1, &v12);
if( (int)result < 0 )
return result;
v7 = v12;
v5 = HalpIommuAttachDeviceDomain(a1[1], *a1, (INT64)&v12[4]);
if( v5 < 0 )
HalpIommuDereferenceHardwareDomain(a2, v7);
}
return(unsigned int)v5;
}Referenced by:
HalJoinDmaDomain
HalpIommuUnblockDevice
IommuDomainAttachDevice