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