@@ -742,6 +742,7 @@ protected unsafe void WriteEvent(int eventId, int arg1)
742742 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 1 ] ;
743743 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
744744 descrs [ 0 ] . Size = 4 ;
745+ descrs [ 0 ] . Reserved = 0 ;
745746 WriteEventCore ( eventId , 1 , descrs ) ;
746747 }
747748 }
@@ -754,8 +755,10 @@ protected unsafe void WriteEvent(int eventId, int arg1, int arg2)
754755 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
755756 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
756757 descrs [ 0 ] . Size = 4 ;
758+ descrs [ 0 ] . Reserved = 0 ;
757759 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
758760 descrs [ 1 ] . Size = 4 ;
761+ descrs [ 1 ] . Reserved = 0 ;
759762 WriteEventCore ( eventId , 2 , descrs ) ;
760763 }
761764 }
@@ -768,10 +771,13 @@ protected unsafe void WriteEvent(int eventId, int arg1, int arg2, int arg3)
768771 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 3 ] ;
769772 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
770773 descrs [ 0 ] . Size = 4 ;
774+ descrs [ 0 ] . Reserved = 0 ;
771775 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
772776 descrs [ 1 ] . Size = 4 ;
777+ descrs [ 1 ] . Reserved = 0 ;
773778 descrs [ 2 ] . DataPointer = ( IntPtr ) ( & arg3 ) ;
774779 descrs [ 2 ] . Size = 4 ;
780+ descrs [ 2 ] . Reserved = 0 ;
775781 WriteEventCore ( eventId , 3 , descrs ) ;
776782 }
777783 }
@@ -785,6 +791,7 @@ protected unsafe void WriteEvent(int eventId, long arg1)
785791 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 1 ] ;
786792 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
787793 descrs [ 0 ] . Size = 8 ;
794+ descrs [ 0 ] . Reserved = 0 ;
788795 WriteEventCore ( eventId , 1 , descrs ) ;
789796 }
790797 }
@@ -797,8 +804,10 @@ protected unsafe void WriteEvent(int eventId, long arg1, long arg2)
797804 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
798805 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
799806 descrs [ 0 ] . Size = 8 ;
807+ descrs [ 0 ] . Reserved = 0 ;
800808 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
801809 descrs [ 1 ] . Size = 8 ;
810+ descrs [ 1 ] . Reserved = 0 ;
802811 WriteEventCore ( eventId , 2 , descrs ) ;
803812 }
804813 }
@@ -811,10 +820,13 @@ protected unsafe void WriteEvent(int eventId, long arg1, long arg2, long arg3)
811820 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 3 ] ;
812821 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
813822 descrs [ 0 ] . Size = 8 ;
823+ descrs [ 0 ] . Reserved = 0 ;
814824 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
815825 descrs [ 1 ] . Size = 8 ;
826+ descrs [ 1 ] . Reserved = 0 ;
816827 descrs [ 2 ] . DataPointer = ( IntPtr ) ( & arg3 ) ;
817828 descrs [ 2 ] . Size = 8 ;
829+ descrs [ 2 ] . Reserved = 0 ;
818830 WriteEventCore ( eventId , 3 , descrs ) ;
819831 }
820832 }
@@ -831,6 +843,7 @@ protected unsafe void WriteEvent(int eventId, string arg1)
831843 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 1 ] ;
832844 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
833845 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
846+ descrs [ 0 ] . Reserved = 0 ;
834847 WriteEventCore ( eventId , 1 , descrs ) ;
835848 }
836849 }
@@ -849,8 +862,10 @@ protected unsafe void WriteEvent(int eventId, string arg1, string arg2)
849862 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
850863 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
851864 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
865+ descrs [ 0 ] . Reserved = 0 ;
852866 descrs [ 1 ] . DataPointer = ( IntPtr ) string2Bytes ;
853867 descrs [ 1 ] . Size = ( ( arg2 . Length + 1 ) * 2 ) ;
868+ descrs [ 1 ] . Reserved = 0 ;
854869 WriteEventCore ( eventId , 2 , descrs ) ;
855870 }
856871 }
@@ -871,10 +886,13 @@ protected unsafe void WriteEvent(int eventId, string arg1, string arg2, string a
871886 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 3 ] ;
872887 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
873888 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
889+ descrs [ 0 ] . Reserved = 0 ;
874890 descrs [ 1 ] . DataPointer = ( IntPtr ) string2Bytes ;
875891 descrs [ 1 ] . Size = ( ( arg2 . Length + 1 ) * 2 ) ;
892+ descrs [ 1 ] . Reserved = 0 ;
876893 descrs [ 2 ] . DataPointer = ( IntPtr ) string3Bytes ;
877894 descrs [ 2 ] . Size = ( ( arg3 . Length + 1 ) * 2 ) ;
895+ descrs [ 2 ] . Reserved = 0 ;
878896 WriteEventCore ( eventId , 3 , descrs ) ;
879897 }
880898 }
@@ -892,8 +910,10 @@ protected unsafe void WriteEvent(int eventId, string arg1, int arg2)
892910 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
893911 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
894912 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
913+ descrs [ 0 ] . Reserved = 0 ;
895914 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
896915 descrs [ 1 ] . Size = 4 ;
916+ descrs [ 1 ] . Reserved = 0 ;
897917 WriteEventCore ( eventId , 2 , descrs ) ;
898918 }
899919 }
@@ -910,10 +930,13 @@ protected unsafe void WriteEvent(int eventId, string arg1, int arg2, int arg3)
910930 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 3 ] ;
911931 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
912932 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
933+ descrs [ 0 ] . Reserved = 0 ;
913934 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
914935 descrs [ 1 ] . Size = 4 ;
936+ descrs [ 1 ] . Reserved = 0 ;
915937 descrs [ 2 ] . DataPointer = ( IntPtr ) ( & arg3 ) ;
916938 descrs [ 2 ] . Size = 4 ;
939+ descrs [ 2 ] . Reserved = 0 ;
917940 WriteEventCore ( eventId , 3 , descrs ) ;
918941 }
919942 }
@@ -931,8 +954,10 @@ protected unsafe void WriteEvent(int eventId, string arg1, long arg2)
931954 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
932955 descrs [ 0 ] . DataPointer = ( IntPtr ) string1Bytes ;
933956 descrs [ 0 ] . Size = ( ( arg1 . Length + 1 ) * 2 ) ;
957+ descrs [ 1 ] . Reserved = 0 ;
934958 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & arg2 ) ;
935959 descrs [ 1 ] . Size = 8 ;
960+ descrs [ 1 ] . Reserved = 0 ;
936961 WriteEventCore ( eventId , 2 , descrs ) ;
937962 }
938963 }
@@ -950,8 +975,10 @@ protected unsafe void WriteEvent(int eventId, long arg1, string arg2)
950975 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
951976 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
952977 descrs [ 0 ] . Size = 8 ;
978+ descrs [ 0 ] . Reserved = 0 ;
953979 descrs [ 1 ] . DataPointer = ( IntPtr ) string2Bytes ;
954980 descrs [ 1 ] . Size = ( ( arg2 . Length + 1 ) * 2 ) ;
981+ descrs [ 1 ] . Reserved = 0 ;
955982 WriteEventCore ( eventId , 2 , descrs ) ;
956983 }
957984 }
@@ -969,8 +996,10 @@ protected unsafe void WriteEvent(int eventId, int arg1, string arg2)
969996 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 2 ] ;
970997 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
971998 descrs [ 0 ] . Size = 4 ;
999+ descrs [ 0 ] . Reserved = 0 ;
9721000 descrs [ 1 ] . DataPointer = ( IntPtr ) string2Bytes ;
9731001 descrs [ 1 ] . Size = ( ( arg2 . Length + 1 ) * 2 ) ;
1002+ descrs [ 1 ] . Reserved = 0 ;
9741003 WriteEventCore ( eventId , 2 , descrs ) ;
9751004 }
9761005 }
@@ -987,8 +1016,10 @@ protected unsafe void WriteEvent(int eventId, byte[] arg1)
9871016 int blobSize = 0 ;
9881017 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & blobSize ) ;
9891018 descrs [ 0 ] . Size = 4 ;
1019+ descrs [ 0 ] . Reserved = 0 ;
9901020 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & blobSize ) ; // valid address instead of empty content
9911021 descrs [ 1 ] . Size = 0 ;
1022+ descrs [ 1 ] . Reserved = 0 ;
9921023 WriteEventCore ( eventId , 2 , descrs ) ;
9931024 }
9941025 else
@@ -998,8 +1029,10 @@ protected unsafe void WriteEvent(int eventId, byte[] arg1)
9981029 {
9991030 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & blobSize ) ;
10001031 descrs [ 0 ] . Size = 4 ;
1032+ descrs [ 0 ] . Reserved = 0 ;
10011033 descrs [ 1 ] . DataPointer = ( IntPtr ) blob ;
10021034 descrs [ 1 ] . Size = blobSize ;
1035+ descrs [ 1 ] . Reserved = 0 ;
10031036 WriteEventCore ( eventId , 2 , descrs ) ;
10041037 }
10051038 }
@@ -1014,13 +1047,16 @@ protected unsafe void WriteEvent(int eventId, long arg1, byte[] arg2)
10141047 EventSource . EventData * descrs = stackalloc EventSource . EventData [ 3 ] ;
10151048 descrs [ 0 ] . DataPointer = ( IntPtr ) ( & arg1 ) ;
10161049 descrs [ 0 ] . Size = 8 ;
1050+ descrs [ 0 ] . Reserved = 0 ;
10171051 if ( arg2 == null || arg2 . Length == 0 )
10181052 {
10191053 int blobSize = 0 ;
10201054 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & blobSize ) ;
10211055 descrs [ 1 ] . Size = 4 ;
1056+ descrs [ 1 ] . Reserved = 0 ;
10221057 descrs [ 2 ] . DataPointer = ( IntPtr ) ( & blobSize ) ; // valid address instead of empty contents
10231058 descrs [ 2 ] . Size = 0 ;
1059+ descrs [ 2 ] . Reserved = 0 ;
10241060 WriteEventCore ( eventId , 3 , descrs ) ;
10251061 }
10261062 else
@@ -1030,8 +1066,10 @@ protected unsafe void WriteEvent(int eventId, long arg1, byte[] arg2)
10301066 {
10311067 descrs [ 1 ] . DataPointer = ( IntPtr ) ( & blobSize ) ;
10321068 descrs [ 1 ] . Size = 4 ;
1069+ descrs [ 1 ] . Reserved = 0 ;
10331070 descrs [ 2 ] . DataPointer = ( IntPtr ) blob ;
10341071 descrs [ 2 ] . Size = blobSize ;
1072+ descrs [ 2 ] . Reserved = 0 ;
10351073 WriteEventCore ( eventId , 3 , descrs ) ;
10361074 }
10371075 }
@@ -1056,6 +1094,12 @@ protected internal struct EventData
10561094 /// </summary>
10571095 public int Size { get { return m_Size ; } set { m_Size = value ; } }
10581096
1097+ /// <summary>
1098+ /// Reserved by ETW. This property is present to ensure that we can zero it
1099+ /// since System.Private.CoreLib uses are not zero'd.
1100+ /// </summary>
1101+ internal int Reserved { get { return m_Reserved ; } set { m_Reserved = value ; } }
1102+
10591103 #region private
10601104 /// <summary>
10611105 /// Initializes the members of this EventData object to point at a previously-pinned
@@ -1097,8 +1141,10 @@ internal unsafe void SetMetadata(byte* pointer, int size, int reserved)
10971141 /// EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
10981142 /// descrs[0].DataPointer = (IntPtr)(&arg1);
10991143 /// descrs[0].Size = 8;
1144+ /// descrs[0].Reserved = 0;
11001145 /// descrs[1].DataPointer = (IntPtr)string2Bytes;
11011146 /// descrs[1].Size = ((arg2.Length + 1) * 2);
1147+ /// descrs[1].Reserved = 0;
11021148 /// WriteEventCore(eventId, 2, descrs);
11031149 /// }
11041150 /// }
0 commit comments