Hi Gary,
I have checked to emit existing events. PerfView can dump the Image ID events where 64 is an existing one:
<Event MSec= "6333.3967" PID="12964" PName= "xperf" TID="11608" EventName="ImageID/FileVersion"
TimeStamp="01/12/26 13:48:26.971825" ID="Illegal" Version="0" Keywords="0x00000000" TimeStampQPC="168,815,739,072" QPCTime="0.100us"
Level="Always" ProviderName="KernelTraceControl" ProviderGuid="28ad2447-105b-4fe2-9599-e59b2aa9a634" ClassicProvider="True" ProcessorNumber="6"
Opcode="64" TaskGuid="b3e675d7-2554-4f18-830b-2762732560de" Channel="0" PointerSize="8"
CPU="6" EventIndex="2300" TemplateType="FileVersionTraceData">
<PrettyPrint>
<Event MSec= "6333.3967" PID="12964" PName= "xperf" TID="11608" EventName="ImageID/FileVersion" ImageSize="0x00079000" TimeDateStamp="0xFFFFFFFFB1EF349B" OrigFileName="MpOAV.dll" FileDescription="IOfficeAntiVirus Module" FileVersion="4.18.2104.5 (WinBuild.160101.0800)" BinFileVersion="4.18.2104.5" VerLanguage="1033" ProductName="Microsoft® Windows® Operating System" CompanyName="Microsoft Corporation" ProductVersion="4.18.2104.5" FileId="" ProgramId=""/>
</PrettyPrint>
<Payload Length="326">
0: 0 90 7 0 9b 34 ef b1 | 4d 0 70 0 4f 0 41 0 .....4.. M.p.O.A.
10: 56 0 2e 0 64 0 6c 0 | 6c 0 0 0 49 0 4f 0 V...d.l. l...I.O.
20: 66 0 66 0 69 0 63 0 | 65 0 41 0 6e 0 74 0 f.f.i.c. e.A.n.t.
30: 69 0 56 0 69 0 72 0 | 75 0 73 0 20 0 4d 0 i.V.i.r. u.s. .M.
40: 6f 0 64 0 75 0 6c 0 | 65 0 0 0 34 0 2e 0 o.d.u.l. e...4...
50: 31 0 38 0 2e 0 32 0 | 31 0 30 0 34 0 2e 0 1.8...2. 1.0.4...
60: 35 0 20 0 28 0 57 0 | 69 0 6e 0 42 0 75 0 5. .(.W. i.n.B.u.
70: 69 0 6c 0 64 0 2e 0 | 31 0 36 0 30 0 31 0 i.l.d... 1.6.0.1.
80: 30 0 31 0 2e 0 30 0 | 38 0 30 0 30 0 29 0 0.1...0. 8.0.0.).
90: 0 0 34 0 2e 0 31 0 | 38 0 2e 0 32 0 31 0 ..4...1. 8...2.1.
a0: 30 0 34 0 2e 0 35 0 | 0 0 31 0 30 0 33 0 0.4...5. ..1.0.3.
b0: 33 0 0 0 4d 0 69 0 | 63 0 72 0 6f 0 73 0 3...M.i. c.r.o.s.
c0: 6f 0 66 0 74 0 ae 0 | 20 0 57 0 69 0 6e 0 o.f.t... .W.i.n.
d0: 64 0 6f 0 77 0 73 0 | ae 0 20 0 4f 0 70 0 d.o.w.s. .. .O.p.
e0: 65 0 72 0 61 0 74 0 | 69 0 6e 0 67 0 20 0 e.r.a.t. i.n.g. .
f0: 53 0 79 0 73 0 74 0 | 65 0 6d 0 0 0 4d 0 S.y.s.t. e.m...M.
100: 69 0 63 0 72 0 6f 0 | 73 0 6f 0 66 0 74 0 i.c.r.o. s.o.f.t.
110: 20 0 43 0 6f 0 72 0 | 70 0 6f 0 72 0 61 0 .C.o.r. p.o.r.a.
120: 74 0 69 0 6f 0 6e 0 | 0 0 34 0 2e 0 31 0 t.i.o.n. ..4...1.
130: 38 0 2e 0 32 0 31 0 | 30 0 34 0 2e 0 35 0 8...2.1. 0.4...5.
140: 0 0 0 0 0 0 | ......
</Payload>
</Event>
I do never see any event emitted in the rewritten etl file, although I am sure in the input file such events exist. I did write 2000 events to easily find them again later in the file but the event counts did not increase accordingly.
WPA is bad at showing events because the Generic View table only shows events it has not already parsed for another table.
On never knows if some events do not exist, or they are hidden because some predefined table did "eat" them. This is true especially for Image ID events. I guess I will need to ask the WPA team directly.