Compartilhar via


Como fazer logon na sessão do agente global

Use o procedimento a seguir para configurar um driver para fazer logon na sessão de rastreamento do Agente Global:

  1. Adicione a definição a seguir ao código do driver. Insira a definição entre a definição de macro WPP_CONTROL_GUIDS e a instrução include para o arquivo de cabeçalho da mensagem de rastreamento.

    #define WPP_GLOBALLOGGER
    
  2. Use o Tracelog para configurar uma sessão de rastreamento do Agente Global. O comando mais simples é o seguinte:

    tracelog -start GlobalLogger
    

    Para obter instruções completas, incluindo parâmetros para configurar a sessão de rastreamento do Agente Global, consulte Sintaxe de comando tracelog e Sessão de rastreamento de agente global.

    Para obter um exemplo, consulte Exemplo 13: criando uma sessão de agente global.

    Esse comando cria e configura a sessão de rastreamento, mas a sessão não é iniciada até que você reinicie o sistema (etapa 5).

  3. Na subchave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger , adicione uma subchave chamada para o GUID de controle do provedor de rastreamento. No Windows Vista e versões posteriores do Windows, o GUID de controle deve estar entre chaves ( {} ).

    O comando tracelog -start GlobalLogger adiciona a subchave GlobalLogger ao registro. A subchave ControlGUID estabelece o driver como um provedor de rastreamento para a sessão de rastreamento do Agente Global.

    Por exemplo, para configurar o driver de exemplo Tracedrv para fazer logon na sessão de rastreamento do Agente Global em um computador que executa o Windows XP, adicione uma subchave chamada para o GUID do controle Tracedrv, d58c126f-b309-11d1-969e-0000f875a5bc: HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.

    TraceDrv, um driver de exemplo que foi projetado para rastreamento de software, está disponível no repositório de exemplos de driver do Windows no GitHub.

  4. Para configurar o provedor de rastreamento, adicione as seguintes entradas do Registro à subchave ControlGUID . Essas entradas são opcionais e seus valores são definidos pelo driver.

    Nome da entrada Tipo de dados Descrição

    Sinalizadores

    REG_DWORD

    Especifica os sinalizadores de rastreamento para o provedor.

    O significado dos sinalizadores é definido independentemente por cada provedor de rastreamento. Normalmente, os sinalizadores representam níveis de relatórios cada vez mais detalhados.

    Level

    REG_DWORD

    Especifica o nível de rastreamento para o provedor.

    O significado do valor level é definido independentemente por cada provedor de rastreamento. Normalmente, o nível de rastreamento representa a gravidade do evento (informações, aviso ou erro).

Observe que o nome da entrada Flags é plural e o nome da entrada level é singular.

  1. Reinicie o sistema. Isso inicia a sessão de rastreamento do Agente Global.

Após a conclusão do teste, exclua a subchave ControlGUID ou defina o valor da entrada Iniciar na subchave GlobalLogger como 0. Se você não fizer isso, a sessão do Agente Global será executada e o driver fará logon nela sempre que você reiniciar o sistema.

Comentários

Quando WPP_GLOBALLOGGER está presente, o WPP adiciona código que lê o registro e determina se a sessão do Agente Global está em execução e se o driver está habilitado para rastreamento para a sessão do Agente Global. Esse código assume o lugar da notificação de habilitação que o driver receberia de uma sessão de rastreamento padrão.

Além disso, como a sessão do Agente Global não fornece notificação de retorno de chamada, o Windows pressupõe que ocorreu um retorno de chamada e continua de acordo.

As definições do WPP geram apenas uma pequena quantidade de código, portanto, não é necessário removê-las do código após o teste.