OpenTraceFromRealTimeLoggerWithAllocationOptions 函数 (evntrace.h)

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

语法

ETW_APP_DECLSPEC_DEPRECATED TRACEHANDLE 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 ,则 LoggerName 必须为 NULL

仅当跟踪控制器已将 EVENT_TRACE_PROPERTIESLogFileMode 成员设置为包含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 以结束处理。

注解

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

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 evntrace.h
Library Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.lib
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