public void it_should_set_properties() { var TEST_TRACE_NAME = "krabs C++/CLI properties test"; uint EVENT_TRACE_CONTROL_QUERY = 0; uint ERROR_SUCCESS = 0; var trace = new UserTrace(TEST_TRACE_NAME); var properties = new EventTraceProperties { BufferSize = 1024, MinimumBuffers = (uint)Environment.ProcessorCount * 2 + 1, MaximumBuffers = (uint)Environment.ProcessorCount * 2 + 2, FlushTimer = 2, LogFileMode = (uint)LogFileModeFlags.FLAG_EVENT_TRACE_REAL_TIME_MODE }; trace.SetTraceProperties(properties); trace.Open(); var info = new TraceInfo { Wnode_BufferSize = 200, LoggerNameOffset = 120 }; var status = ControlTraceW(0, TEST_TRACE_NAME, ref info, EVENT_TRACE_CONTROL_QUERY); Assert.IsTrue(status == ERROR_SUCCESS); Assert.IsTrue(properties.BufferSize == info.BufferSize); Assert.IsTrue(properties.MinimumBuffers == info.MinimumBuffers); Assert.IsTrue(properties.MaximumBuffers == info.MaximumBuffers); Assert.IsTrue(properties.FlushTimer == info.FlushTimer); Assert.IsTrue((uint)LogFileModeFlags.FLAG_EVENT_TRACE_REAL_TIME_MODE == (info.LogFileMode & (uint)LogFileModeFlags.FLAG_EVENT_TRACE_REAL_TIME_MODE)); Assert.IsTrue((uint)LogFileModeFlags.FLAG_EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING != (info.LogFileMode & (uint)LogFileModeFlags.FLAG_EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING)); }