HalpIommuFreeDmaDomain
NTSTATUS __stdcall HalpIommuFreeDmaDomain(INT64 a1){
NTSTATUS v1;
VOID *v4;
_HALP_ALLOC_CONTEXT *v5;
__int64 v6;
v1 = 0;
if( !a1 )
return 0;
if( byte_140C49B2C )
{
v6 = *(unsigned int *)(a1 + 32);
BYTE4(v6) = *(_BYTE *)(a1 + 40);
v1 = ((__int64(__fastcall *)(__int64 *))qword_140C4A2C8)(&v6);
}
else
{
v4 = *(VOID **)(a1 + 24);
if( v4 )
{
HalpIommuCleanupPageTable(*(_QWORD *)(a1 + 24));
HalpMmAllocCtxFree(v5, v4);
}
}
HalpMmAllocCtxFree((_HALP_ALLOC_CONTEXT *)a1, (VOID *)a1);
return v1;
}Referenced by:
HalpDmaDereferenceDomainObject
IommuDomainDelete