IopLiveDumpTraceInterfaceEnd

UINT8 __fastcall IopLiveDumpTraceInterfaceEnd(__int64 a1, __int64 a2, int a3){
  UINT8 result; 
  int v4; 
  int v5; 
  EVENT_DESCRIPTOR *v6; 
  UINT64 UserDataCount; 
  EVENT_DATA_DESCRIPTOR UserData; 
  int v9; 
  v9 = a3;
  result = IopLiveDumpIsTracingEnabled();
  if( result )
  {
    if( v4 )
    {
      v6 = (EVENT_DESCRIPTOR *)LIVEDUMP_EVENT_WRITE_DEFERRED_DATA_API_END;
      if( v5 != 1 )
        v6 = (EVENT_DESCRIPTOR *)&LIVEDUMP_EVENT_DISCARD_DEFERRED_DATA_API_END;
    }
    else
    {
      v6 = (EVENT_DESCRIPTOR *)LIVEDUMP_EVENT_CAPTURE_API_END;
    }
    *(_QWORD *)&UserData.Size = 4i64;
    UserData.Ptr = (unsigned __int64)&v9;
    LODWORD(UserDataCount) = 1;
    return EtwWriteEx(IopLiveDumpEtwRegHandle, v6, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
  }
  return result;
}

Referenced by:

DbgkpWerCleanupContext
IoCaptureLiveDump
IoWriteDeferredLiveDumpData