Función FlushTraceW (evntrace.h)

La función FlushTrace hace que una sesión de seguimiento de eventos entregue inmediatamente eventos almacenados en búfer para la sesión especificada. De forma predeterminada, una sesión de seguimiento de eventos entregará eventos cuando un búfer esté lleno, flushTimer de la sesión expira o se cierre la sesión.

Esta función está obsoleta. La función ControlTrace sustituye a esta función.

Sintaxis

ULONG WMIAPI FlushTraceW(
  [in]      TRACEHANDLE             TraceHandle,
  [in]      LPCWSTR                 InstanceName,
  [in, out] PEVENT_TRACE_PROPERTIES Properties
);

Parámetros

[in] TraceHandle

Controle la sesión de seguimiento de eventos que se va a vaciar o 0. Debe especificar un valor TraceHandle distinto de cero si InstanceName es NULL. Este parámetro solo se usará si InstanceName es NULL. StartTrace devuelve el identificador.

[in] InstanceName

Nombre de la sesión de seguimiento de eventos que se va a vaciar o NULL. Debe especificar InstanceName si TraceHandle es 0.

Para especificar la sesión del registrador de kernel de NT, establezca InstanceName en KERNEL_LOGGER_NAME.

[in, out] Properties

Puntero a una estructura de EVENT_TRACE_PROPERTIES inicializada.

Si usa una estructura recién inicializada, solo tiene que establecer los miembros Wnode.BufferSize, Wnode.Guid, LoggerNameOffset y LogFileNameOffset de la estructura. Puede usar el nombre de sesión máximo (1024 caracteres) y las longitudes máximas de nombre de archivo de registro (1024 caracteres) para calcular el tamaño y los desplazamientos del búfer si no se conocen.

En la salida, la estructura recibe la configuración de la propiedad y las estadísticas de sesión de la sesión de seguimiento de eventos, que reflejan el estado de la sesión después del vaciado.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es uno de los códigos de error del sistema. En la tabla siguiente se incluyen algunos errores comunes y sus causas.

  • ERROR_INVALID_PARAMETER

    Una de las siguientes condiciones se cumple:

    • Las propiedades son NULL.
    • InstanceName y TraceHandle son NULL.
    • InstanceName es NULL y TraceHandle no es un identificador válido.
  • ERROR_BAD_LENGTH

    Una de las siguientes condiciones se cumple:

    • El miembro Wnode.BufferSize de Properties especifica un tamaño incorrecto.
    • Las propiedades no tienen espacio suficiente asignado para contener una copia del nombre de sesión y el nombre del archivo de registro (si se usa).
  • ERROR_ACCESS_DENIED

    Solo los usuarios con privilegios administrativos, los usuarios del grupo Usuarios del registro de rendimiento y los servicios que se ejecutan como LocalSystem, LocalService, NetworkService pueden controlar las sesiones de seguimiento de eventos. Para conceder a un usuario restringido la capacidad de controlar las sesiones de seguimiento, agréguelas al grupo Usuarios del registro de rendimiento.

    Windows XP y Windows 2000: Cualquier persona puede controlar una sesión de seguimiento.

Comentarios

Los controladores de seguimiento de eventos llaman a esta función.

Esta función está obsoleta. En su lugar, use ControlTrace con ControlCode establecido en EVENT_TRACE_CONTROL_FLUSH.

Esta función se puede usar con una sesión en memoria (una sesión iniciada con la marca EVENT_TRACE_BUFFERING_MODE ) para escribir los datos del seguimiento en un archivo.

Normalmente no es necesario vaciar las sesiones basadas en archivos o en tiempo real porque ETW vaciará automáticamente un búfer cuando esté lleno (es decir, cuando no tenga espacio para el evento siguiente), cuando expire el FlushTimer de la sesión de seguimiento o cuando se cierre la sesión de seguimiento.

No llame a FlushTrace desde DllMain (puede provocar interbloqueo).

Nota

El encabezado evntrace.h define FlushTrace como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado evntrace.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

ControlTrace