private static unsafe int EventWriteTransfer(
[In] long registrationHandle,
[In] ref EventDescriptor eventDescriptor,
[In] Guid* activityId,
[In] Guid* relatedActivityId,
[In] int userDataCount,
[In] EventProvider.EventData* userData
)
{
IntPtr descripPtr = Marshal.AllocHGlobal(Marshal.SizeOf(eventDescriptor));
Marshal.StructureToPtr(eventDescriptor, descripPtr, false);
int status = Interop.Kernel32.EventWriteTransfer((ulong)registrationHandle,
(void*)descripPtr,
activityId,
relatedActivityId,
userDataCount,
(void*)userData);
Marshal.FreeHGlobal(descripPtr);
return status;
}