UpdateHeapTrace

此函数使用一组新的 PID、堆栈步进事件或其他 ETW 会话更改来更新现有的堆跟踪会话。

ULONG
WINAPI
UpdateHeapTrace(
    _Inout_ PEVENT_TRACE_PROPERTIES Properties,
    _In_z_ LPCWSTR wszSessionName,
    _In_reads_opt_(cPids) const ULONG Pids[],
    _In_  ULONG cPids,
    _In_reads_opt_(cStackTracingEventIds) const STACK_TRACING_EVENT_ID StackTracingEventIds[],
    _In_  ULONG cStackTracingEventIds
    );

参数

TraceHandle [out]
存储事件跟踪会话的句柄。 如果句柄无效,则此参数设置为零。 不应将此参数与 INVALID_HANDLE_VALUE 进行比较。 如果该函数失败,则不要使用此句柄。

Properties [in, out]
指向具有会话的更新属性的 EVENT_TRACE_PROPERTIES 结构的指针。 有关可以指定此结构的哪些成员的详细信息,请参阅具有 ControlCode EVENT_TRACE_CONTROL_UPDATE 的 ControlTrace 函数。

wszSessionName[in]
要更新的堆跟踪会话的名称。 这应与传递给 StartHeapTrace 的名称相同。

Pids [in]
要对其启用堆跟踪的进程 ID 的数组。

cPids [in, out]
Pids 数组的大小。

StackTracingEventIds [in]
STACK_TRACING_EVENT_ID 结构的数组,用于指定应启用哪个堆事件堆栈步进。 可以为 NULL。

cStackTracingEventIds [in]
StackTracingEventIds 数组的大小。

返回值

ERROR_SUCCESS 表示成功。

下表中描述了可能的错误值。

错误值 说明

ERROR_ALREADY_EXISTS

系统上仅运行内核记录器的单个实例。 如果此函数尝试在另一个组件启动内核日志记录后启动,则可能会返回此错误。

ERROR_INVALID_FLAGS

可能表示 Properties.EnableFlags 中存在无效的跟踪标志。

ERROR_OUT_OF_MEMORY

可能表示无法为 EVENT_TRACE_PROPERTIES 分配内存。

如果该函数由于其他原因失败,则返回系统错误代码。

备注

函数

StartHeapTrace