public static unsafe void WriteStructured(ref GenericEventDescriptor eventDescriptor, ulong userDataCount, EventDataDescriptor *eventDataPtr) { try { //using (var pin = new PinCollection()) fixed(GenericEventDescriptor *eventDescriptorPtr = &eventDescriptor) { var traceEvent = new NativeTypes.FABRIC_ETW_TRACE_EVENT_PAYLOAD() { EventDescriptor = (IntPtr)eventDescriptorPtr,//pin.AddBlittable(eventDescriptor), EventDataDescriptorList = new NativeTypes.FABRIC_ETW_TRACE_EVENT_DATA_DESCRIPTOR_LIST() { Count = userDataCount, UserDataDescriptor = (IntPtr)eventDataPtr }, Reserved = IntPtr.Zero }; NativeCommon.WriteManagedStructuredTrace(ref traceEvent); } } catch (Exception ex) { Console.WriteLine("Exception during interop structured trace writing: {0}", ex); Console.WriteLine("EventId: {0}, UserDataCount {1}", eventDescriptor.EventId, userDataCount); } }
internal static extern void WriteManagedStructuredTrace( [In] ref NativeTypes.FABRIC_ETW_TRACE_EVENT_PAYLOAD eventPayload);