Función OpenTraceA (evntrace.h)
La función OpenTrace abre un identificador de procesamiento de seguimiento ETW para consumir eventos de una sesión de seguimiento en tiempo real de ETW o un archivo de registro ETW.
Sintaxis
PROCESSTRACE_HANDLE WMIAPI OpenTraceA(
[in, out] PEVENT_TRACE_LOGFILEA Logfile
);
Parámetros
[in, out] Logfile
Puntero a una estructura de EVENT_TRACE_LOGFILE . La estructura especifica el origen del que se van a consumir eventos (de un archivo de registro ETW o de una sesión ETW en tiempo real) y especifica las devoluciones de llamada que el consumidor quiere usar para recibir los eventos. Si se ejecuta correctamente, OpenTrace actualizará la estructura con información del archivo o la sesión abiertos.
Valor devuelto
Si la función se realiza correctamente, devuelve el identificador de procesamiento de seguimiento. El identificador debe cerrarse mediante CloseTrace.
Si se produce un error en la función, devuelve INVALID_PROCESSTRACE_HANDLE.
(INVALID_PROCESSTRACE_HANDLE es equivalente a (UINT64)UINTPTR_MAX
).
Nota
Antes de Windows Vista, OpenTrace devolvió UINT64_MAX
en caso de error. Si el código admite sistemas operativos anteriores (Windows XP o Windows Server 2003) y versiones más recientes de Windows (Windows Vista y versiones posteriores), debe determinar el sistema operativo en el que se ejecuta y comparar el valor devuelto con el valor adecuado.
Sistema operativo | Tipo de proceso | Valor que indica un error |
---|---|---|
Antes de Windows Vista | 32 o 64 bits | 0XFFFFFFFFFFFFFFFF = UINT64_MAX |
Windows Vista o posterior | 32 bits | 0x00000000FFFFFFFF = (UINT64)UINTPTR_MAX |
Windows Vista o posterior | 64 bits | 0XFFFFFFFFFFFFFFFF = (UINT64)UINTPTR_MAX |
Si se produce un error en la función , puede usar la función GetLastError para obtener información de error extendida. A continuación se muestran algunos errores comunes y sus causas.
ERROR_INVALID_PARAMETER
El parámetro Logfile es NULL.
ERROR_BAD_PATHNAME
Si no especificó el miembro LoggerName de EVENT_TRACE_LOGFILE, debe especificar un nombre de archivo de registro válido.
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 consumir eventos en tiempo real. Para conceder a un usuario restringido la capacidad de consumir eventos en tiempo real, agréguelos al grupo Usuarios del registro de rendimiento.
Windows XP y Windows 2000: Cualquier persona puede consumir eventos en tiempo real.
Comentarios
Los consumidores de seguimiento llaman a esta función para abrir una sesión de procesamiento de seguimiento.
Después de llamar a OpenTrace, llame a la función ProcessTrace para procesar los eventos. Cuando haya terminado de procesar eventos, llame a la función CloseTrace para cerrar el identificador de procesamiento de seguimiento.
Ejemplos
Para obtener un ejemplo que usa OpenTrace, consulte Uso de TdhFormatProperty para consumir datos de eventos.
Nota
El encabezado evntrace.h define OpenTrace 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 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | evntrace.h |
Library | Sechost.lib en Windows 8.1 y Windows Server 2012 R2; Advapi32.lib en Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista y Windows XP |
Archivo DLL | Sechost.dll en Windows 8.1 y Windows Server 2012 R2; Advapi32.dll en Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista y Windows XP |