OpenTraceFromRealTimeLoggerWithAllocationOptions 函数 (evntrace.h)

创建附加到活动实时 ETW 会话的跟踪处理会话。

语法

ETW_APP_DECLSPEC_DEPRECATED PROCESSTRACE_HANDLE WMIAPI OpenTraceFromRealTimeLoggerWithAllocationOptions(
  PCWSTR                       LoggerName,
  const ETW_OPEN_TRACE_OPTIONS *Options,
  ULONG_PTR                    AllocationSize,
  HANDLE                       MemoryPartitionHandle,
  TRACE_LOGFILE_HEADER         *LogFileHeader
);

参数

LoggerName

实时事件跟踪会话的名称;如果处理日志文件中的数据,NULL。 如果要调用 OpenTraceFromRealTimeLoggerWithAllocationOptions 来使用实时会话中的数据,请为此成员指定值。

调用 OpenTraceFromRealTimeLoggerWithAllocationOptions时,如果 logFileHeader 为非NULL,则必须 LoggerNameNULL

仅当跟踪控制器已设置 LogFileModeEVENT_TRACE_PROPERTIES 成员以包含 EVENT_TRACE_REAL_TIME_MODE 标志时,才能实时使用事件。

只有具有管理权限、性能日志用户组中的用户以及作为 LocalSystem、LocalService、NetworkService 运行的应用程序才能实时使用事件。 若要授予受限用户实时使用事件的能力,请将它们添加到性能日志用户组,或调用 EventAccessControl

Options

此处理会话的配置选项。 有关详细信息,请参阅 ETW_OPEN_TRACE_OPTIONS

AllocationSize

将在处理过程中预先分配用于存储 ETW 缓冲区的内存的大小(以字节为单位)。 更大的分配将减少单个分配/免费调用的需求,代价是较高的一致性内存使用率。 这将向上调整为基础 Real-Time ETW 会话的总缓冲区空间的最小值,以确保为基本功能分配足够的缓冲区空间。 如果为 0,将使用默认大小。

MemoryPartitionHandle

用于此处理会话的内存分配的内存分区的句柄。 如果为 NULL,将使用进程的内存分区。 有关详细信息,请参阅 MemExtendedParameterPartitionHandle

LogFileHeader

日志文件的标头信息。 有关详细信息,请参阅 TRACE_LOGFILE_HEADER

返回值

用于标识此处理会话的 TRACEHANDLE。 通常传递给 ProcessTrace 以开始处理,并 CloseTrace 结束处理。

言论

ProcessTrace 在返回 TRACEHANDLE上调用后,这将在刷新 ETW 会话时接收缓冲区,并立即开始处理它们,并调用选项中指定的回调。 这与 OpenTraceFromRealTime 相同,只不过它允许自定义处理会话的内存分配。

要求

要求 价值
最低支持的客户端 Windows 11 2022 更新
支持的最低服务器 Windows Server 2022
目标平台 窗户
标头 evntrace.h
Advapi32.dll
DLL Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.dll;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.dll