Compartir vía


Cómo iniciar sesión en la sesión global del registrador

Use el procedimiento siguiente para configurar un controlador para iniciar sesión en la sesión de seguimiento del registrador global:

  1. Agregue la siguiente definición al código del controlador. Inserte la definición entre la definición de macro de WPP_CONTROL_GUIDS y la instrucción include para el archivo de encabezado del mensaje de seguimiento.

    #define WPP_GLOBALLOGGER
    
  2. Use Tracelog para configurar una sesión de seguimiento del registrador global. El comando más sencillo es el siguiente:

    tracelog -start GlobalLogger
    

    Para obtener instrucciones completas, incluidos los parámetros para configurar la sesión de seguimiento del registrador global, consulte La sintaxis del comando tracelog y la sesión de seguimiento global del registrador.

    Para obtener un ejemplo, vea Ejemplo 13: Crear una sesión de registrador global.

    Este comando crea y configura la sesión de seguimiento, pero la sesión no se inicia hasta que se reinicia el sistema (paso 5).

  3. En la subclave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger , agregue una subclave denominada para el GUID de control del proveedor de seguimiento. En Windows Vista y versiones posteriores de Windows, el GUID de control debe ir entre llaves ( {} ).

    El comando tracelog -start GlobalLogger agrega la subclave GlobalLogger al registro. La subclave ControlGUID establece el controlador como proveedor de seguimiento para la sesión de seguimiento del registrador global.

    Por ejemplo, para configurar el controlador de ejemplo Tracedrv para iniciar sesión en la sesión de seguimiento del registrador global en un equipo que ejecuta Windows XP, agregue una subclave denominada para el GUID de control Tracedrv, d58c126f-b309-11d1-969e-000f875a5bc: HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.

    TraceDrv, un controlador de ejemplo diseñado para el seguimiento de software, está disponible en el repositorio de ejemplos de controladores de Windows en GitHub.

  4. Para configurar el proveedor de seguimiento, agregue las siguientes entradas del Registro a la subclave ControlGUID . Estas entradas son opcionales y el controlador define sus valores.

    Nombre de la entrada Tipo de datos Descripción

    Marcas

    REG_DWORD

    Especifica las marcas de seguimiento para el proveedor.

    Cada proveedor de seguimiento define el significado de las marcas de forma independiente. Normalmente, las marcas representan niveles de informes cada vez más detallados.

    Level

    REG_DWORD

    Especifica el nivel de seguimiento del proveedor.

    Cada proveedor de seguimiento define el significado del valor Level de forma independiente. Normalmente, el nivel de seguimiento representa la gravedad del evento (información, advertencia o error).

Tenga en cuenta que el nombre de la entrada Flags es plural y el nombre de la entrada Level es singular.

  1. Reinicie el sistema. Esto inicia la sesión de seguimiento global del registrador.

Una vez completada la prueba, elimine la subclave ControlGUID o establezca el valor de la entrada Start en la subclave GlobalLogger en 0. Si no lo hace, se ejecuta la sesión del registrador global y el controlador lo registra cada vez que reinicia el sistema.

Comentarios

Cuando WPP_GLOBALLOGGER está presente, WPP agrega código que lee el registro y determina si la sesión del registrador global se está ejecutando y si el controlador está habilitado para realizar el seguimiento en la sesión del registrador global. Este código tiene lugar la notificación de habilitación que el controlador recibiría de una sesión de seguimiento estándar.

Además, dado que la sesión del registrador global no proporciona notificación de devolución de llamada, Windows asume que se ha producido una devolución de llamada y continúa en consecuencia.

Las definiciones de WPP generan solo una pequeña cantidad de código, por lo que no es necesario quitarlas del código después de las pruebas.