Compartir a través de


StartHeapTrace

Esta función registra e inicia una sesión de seguimiento del montón para un conjunto de PID especificados. También puede habilitar el recorrido por la pila para determinados eventos del montón, como la asignación o eliminación mediante esta función.

El proceso para el que se va a habilitar el seguimiento del montón debe crearse antes de llamar a esta función. Para capturar eventos de montón desde el inicio del programa, es aconsejable que el proceso se inicie con la marca CREATE_SUSPENDED , luego el seguimiento del montón habilitado para su PID y, a continuación, se reanude el proceso.

El seguimiento del montón es muy detallado y puede generar rápidamente un archivo de seguimiento muy grande. Los eventos se pueden perder fácilmente si los búferes de la sesión son demasiado pequeños o demasiado pocos. Se recomienda que el número de procesos para los que se habilite el seguimiento del montón esté limitado para no perder eventos. La habilitación del seguimiento del montón puede tener un impacto en el rendimiento en el proceso que se realiza el seguimiento.

ULONG
WINAPI
StartHeapTrace(
    _Out_ PTRACEHANDLE TraceHandle,
    _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
    );

Parámetros

TraceHandle [out]
Almacena un identificador en una sesión de seguimiento de eventos. Este parámetro se establece en cero si el identificador no es válido. Este parámetro no debe compararse con INVALID_HANDLE_VALUE. No use este identificador si se produce un error en la función.

Propiedades [in, out]
Almacena un puntero a una estructura de EVENT_TRACE_PROPERTIES . EVENT_TRACE_PROPERTIES configura determinados aspectos del comportamiento de la sesión.

No es necesario establecer el miembro Guid porque esta función siempre usa su propio valor. Si especifica un GUID, no se usará.

wszSessionName [in]
SEl nombre de sesión que se va a pasar a StartTrace.

Pids [in]
Matriz de identificadores de proceso en la que se habilitará el seguimiento del montón.

cPids [in]
Tamaño de la matriz Pids.

cStackTracingEventIds [in]
Tamaño de la matriz StackTracingEventIds.

Valor devuelto

ERROR_SUCCESS indica que se ha realizado correctamente.

Los valores de error posibles se describen en la tabla siguiente.

Valor de error Descripción

ERROR_ALREADY_EXISTS

Solo se ejecuta una única instancia del registrador de kernel en el sistema. Si esta función intenta iniciarse después de que otro componente haya iniciado el registro del kernel, es posible que se devuelva este error.

ERROR_INVALID_FLAGS

Posiblemente indica que hay marcas de seguimiento no válidas en Properties.EnableFlags.

ERROR_OUT_OF_MEMORY

Posiblemente indica un error al asignar memoria para EVENT_TRACE_PROPERTIES.

Si se produce un error en la función por un motivo distinto de los enumerados, se devuelve un código de error del sistema.

Observaciones

Ninguno

Funciones

UpdateHeapTrace