MiReferenceAweHandle
NTSTATUS __stdcall MiReferenceAweHandle(_HANDLE Handle, INT64 a2){
INT8 v2;
PVOID *v3;
PVOID *v4;
_QWORD *v5;
INT8 v6;
VOID *v7;
NTSTATUS result;
_CONTROL_AREA *v9;
int v10;
VOID *v11;
NTSTATUS v12;
UINT64 Tag;
UINT64 Taga;
PVOID Object;
PVOID v16;
_QWORD *v17;
*v3 = 0i64;
v4 = v3;
v5 = v17;
v6 = v2;
v16 = 0i64;
v7 = *(VOID **)&Handle;
Object = 0i64;
*v17 = 0i64;
if( *(_QWORD *)&Handle == -1i64 )
return 0;
LODWORD(Tag) = 1750101325;
if( ObReferenceObjectByHandleWithTag(*(VOID **)&Handle, a2, MmSectionObjectType, v2, Tag, &Object, 0i64) < 0 )
{
LODWORD(Taga) = 1750101325;
result = ObReferenceObjectByHandleWithTag(v7, 8ui64, (_OBJECT_TYPE *)PsProcessType, v6, Taga, &v16, 0i64);
if( result >= 0 )
*v4 = v16;
}
else
{
v9 = MiSectionControlArea((_SECTION *)Object);
LOBYTE(v10) = MiAweControlArea((INT64)v9);
if( v10 )
{
*v5 = v11;
return v12;
}
else
{
ObfDereferenceObjectWithTag(v11, 0x68506D4Dui64);
return -1073741816;
}
}
return result;
}Referenced by:
MiAllocateUserPhysicalPages
MiCreateUserPhysicalView
NtFreeUserPhysicalPages