TRACE_LOGFILE_HEADER 结构 (evntrace.h)
TRACE_LOGFILE_HEADER 结构包含有关事件跟踪会话及其事件的信息。 它是 ETW 日志文件标头中跟踪信息数据的原始数据格式。 它也是 OpenTrace 返回并在跟踪处理期间提供给 BufferCallback 的信息的一部分。
语法
typedef struct _TRACE_LOGFILE_HEADER {
ULONG BufferSize;
union {
ULONG Version;
struct {
UCHAR MajorVersion;
UCHAR MinorVersion;
UCHAR SubVersion;
UCHAR SubMinorVersion;
} VersionDetail;
} DUMMYUNIONNAME;
ULONG ProviderVersion;
ULONG NumberOfProcessors;
LARGE_INTEGER EndTime;
ULONG TimerResolution;
ULONG MaximumFileSize;
ULONG LogFileMode;
ULONG BuffersWritten;
union {
GUID LogInstanceGuid;
struct {
ULONG StartBuffers;
ULONG PointerSize;
ULONG EventsLost;
ULONG CpuSpeedInMHz;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME2;
#if ...
PWCHAR LoggerName;
#if ...
PWCHAR LogFileName;
#if ...
RTL_TIME_ZONE_INFORMATION TimeZone;
#else
LPWSTR LoggerName;
#endif
#else
LPWSTR LogFileName;
#endif
#else
TIME_ZONE_INFORMATION TimeZone;
#endif
LARGE_INTEGER BootTime;
LARGE_INTEGER PerfFreq;
LARGE_INTEGER StartTime;
ULONG ReservedFlags;
ULONG BuffersLost;
} TRACE_LOGFILE_HEADER, *PTRACE_LOGFILE_HEADER;
成员
BufferSize
事件跟踪会话缓冲区的大小(以字节为单位)。
DUMMYUNIONNAME
DUMMYUNIONNAME.Version
收集跟踪的操作系统的版本号。 这是 VersionDetail 成员的汇总。 从低序字节开始,前两个字节包含 MajorVersion,接下来的两个字节包含 MinorVersion,接下来的两个字节包含 SubVersion,最后两个字节包含 SubMinorVersion。
DUMMYUNIONNAME.VersionDetail
DUMMYUNIONNAME.VersionDetail.MajorVersion
收集跟踪的操作系统的主版本号。
DUMMYUNIONNAME.VersionDetail.MinorVersion
收集跟踪的操作系统的次要版本号。
DUMMYUNIONNAME.VersionDetail.SubVersion
保留。
DUMMYUNIONNAME.VersionDetail.SubMinorVersion
保留。
ProviderVersion
收集跟踪的操作系统的内部版本号。
NumberOfProcessors
收集跟踪的系统上的处理器数。
EndTime
事件跟踪会话停止的时间,以 1601 年 1 月 1 日午夜以来的 100 纳秒间隔。 如果实时使用事件或来自未最终确定 (日志文件(即未正确关闭) )的事件,则此值可能为 0。
TimerResolution
硬件计时器的分辨率,以 100 纳秒为单位。 有关用法,请参阅 EVENT_TRACE_HEADER的备注。
MaximumFileSize
日志文件的最大大小(以 MB 为单位)。
LogFileMode
事件跟踪会话的日志记录模式。 有关值的列表,请参阅 日志记录模式常量。
BuffersWritten
事件跟踪会话写入的缓冲区总数。
DUMMYUNIONNAME2
DUMMYUNIONNAME2.LogInstanceGuid
保留。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME
DUMMYUNIONNAME2.DUMMYSTRUCTNAME.StartBuffers
保留。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME.PointerSize
指针数据类型的默认大小(以字节为单位)。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME.EventsLost
事件跟踪会话期间丢失的事件数。 事件丢失的主要原因是分配给跟踪日志记录会话的内存不足或传入事件速率过高。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME.CpuSpeedInMHz
收集跟踪的系统的 CPU 速度(以兆赫为单位)。
Windows 2000: 不支持此成员。
LoggerName
请勿使用此字段。
事件跟踪会话的名称是内存中此结构之后的第一个以 null 结尾的字符串。
LogFileName
请勿使用此字段。
事件跟踪日志文件的名称是内存中此结构之后的第二个以 null 结尾的字符串。 第一个字符串是会话的名称。
TimeZone
包含 BootTime、EndTime 和 StartTime 成员时区的TIME_ZONE_INFORMATION结构。
BootTime
系统启动的时间,自 1601 年 1 月 1 日午夜以来的 100 纳秒间隔。 仅对写入全局记录器会话的跟踪支持 BootTime。
PerfFreq
高分辨率性能计数器的频率(如果存在)。
StartTime
事件跟踪会话的开始时间,自 1601 年 1 月 1 日午夜起,间隔为 100 纳秒。
ReservedFlags
指定时钟类型。 有关详细信息,请参阅 WNODE_HEADER 的 ClientContext 成员。
BuffersLost
事件跟踪会话期间丢失的缓冲区总数。
备注
在设置任何成员之前,请务必将此结构的内存初始化为零。
任何日志文件中的第一个事件包含此结构中定义的数据。 可以使用此结构访问事件数据,也可以使用 EventTrace_Header MOF 类解码事件数据。 如果使用者位于与生成日志文件的计算机不同的计算机上,或者日志文件是在 WOW (32 位) 会话中写入的,则使用此结构读取事件数据可能会返回意外结果。 这是因为 LoggerName 和 LogFileName 成员是指针,大小可能因 PointerSize 成员而异。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | evntrace.h |