EtwpUseDescriptorTypeUm

NTSTATUS __fastcall EtwpUseDescriptorTypeUm(INT64 a1){
  VOID *v2; 
  NTSTATUS result; 
  NTSTATUS v4; 
  char v5; 
  PADAPTER_OBJECT DmaAdapter; 

  v2 = *(VOID **)a1;
  DmaAdapter = 0i64;
  result = ObReferenceObjectByHandle(v2, 0x800ui64, EtwpRegistrationObjectType, 1, (VOID **)&DmaAdapter, 0i64);
  v4 = result;
  if( result >= 0 )
  {
    v5 = *(_BYTE *)(a1 + 8);
    if( v5 == 1 )
    {
      _InterlockedOr16(
        (volatile signed __int16 *)&DmaAdapter->AdapterObject.CrashDump.ContiguousHint.Offset + 1,
        0x200u);
    }
    else if( v5 )
    {
      v4 = -1073741811;
    }
    else
    {
      _InterlockedAnd16(
        (volatile signed __int16 *)&DmaAdapter->AdapterObject.CrashDump.ContiguousHint.Offset + 1,
        0xFDFFu);
    }
    HalPutDmaAdapter(DmaAdapter);
    return v4;
  }
  return result;
}

Referenced by:

NtTraceControl