NtAcquireProcessActivityReference

NTSTATUS __fastcall NtAcquireProcessActivityReference(INT64 *a1, VOID *a2, INT64 a3){
  INT8 v5; 
  __int64 v6; 
  NTSTATUS result; 
  PVOID v8; 
  int ActivityReference; 
  __int64 v10[3]; 
  PVOID Object; 
  v10[0] = 0i64;
  Object = 0i64;
  v5 = *((_BYTE *)KeGetCurrentThread() + 562);
  if( v5 )
  {
    v6 = 0x7FFFFFFF0000i64;
    if( (unsigned __int64)a1 < 0x7FFFFFFF0000i64 )
      v6 = (__int64)a1;
    *(_QWORD *)v6 = *(_QWORD *)v6;
  }
  if( (_DWORD)a3 )
    return -1073741583;
  result = ExCpuSetResourceManagerAccessCheck(v5);
  if( result >= 0 )
  {
    result = ObReferenceObjectByHandleWithTag(a2, 0x1000u, (POBJECT_TYPE)PsProcessType, v5, 0x63417350u, &Object, 0i64);
    if( result >= 0 )
    {
      v8 = Object;
      ActivityReference = PspCreateActivityReference(Object, (INT64)v10);
      if( ActivityReference >= 0 )
        *a1 = v10[0];
      ObfDereferenceObjectWithTag(v8, 0x63417350ui64);
      return ActivityReference;
    }
  }
  return result;
}

Referenced by:

No references.