in krabs/krabs/etw.hpp [234:259]
trace_info trace_manager<T>::fill_trace_info()
{
trace_info info = {};
info.properties.Wnode.BufferSize = sizeof(trace_info);
info.properties.Wnode.Guid = T::trace_type::get_trace_guid();
info.properties.Wnode.Flags = WNODE_FLAG_TRACED_GUID;
info.properties.Wnode.ClientContext = 1; // QPC clock resolution
info.properties.BufferSize = trace_.properties_.BufferSize;
info.properties.MinimumBuffers = trace_.properties_.MinimumBuffers;
info.properties.MaximumBuffers = trace_.properties_.MaximumBuffers;
info.properties.FlushTimer = trace_.properties_.FlushTimer;
if (trace_.properties_.LogFileMode)
info.properties.LogFileMode = trace_.properties_.LogFileMode;
else
info.properties.LogFileMode = EVENT_TRACE_REAL_TIME_MODE
| EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING;
info.properties.LogFileMode |= T::trace_type::augment_file_mode();
info.properties.LoggerNameOffset = offsetof(trace_info, logfileName);
info.properties.EnableFlags = T::trace_type::construct_enable_flags(trace_);
assert(info.traceName[0] == '\0');
assert(info.logfileName[0] == '\0');
trace_.name_._Copy_s(info.traceName, ARRAYSIZE(info.traceName), trace_.name_.length());
return info;
}