Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A funcionalidade de rastreamento de software WPP permite que tu adiciones mensagens de rastreamento que ajudam a depurar o teu driver. Além disso, o registo de eventos da estrutura fornece centenas de mensagens de rastreio que pode visualizar.
Você pode exibir mensagens de rastreamento usando TraceView ou Tracelog. Você também pode enviar mensagens de rastreamento para um depurador do kernel.
Adicionando mensagens de rastreamento ao seu driver
Para adicionar mensagens de rastreamento ao driver baseado em estrutura, você deve:
Adicione uma diretiva #include a cada um dos arquivos de origem do driver que contenha qualquer uma das macros WPP. Esta diretiva deve identificar um arquivo de cabeçalho de mensagem de rastreamento (TMH) . O nome do arquivo deve ter um formato de <driver-source-file-name>.tmh.
Por exemplo, se o driver consistir em dois arquivos de origem, chamados MyDriver1.c e MyDriver2.c, então MyDriver1.c deve conter:
#include "MyDriver1.tmh"e MyDriver2.c deve conter:
#include "MyDriver2.tmh"Quando você cria seu driver no Microsoft Visual Studio, o pré-processador WPP gera os arquivos .tmh.
Defina uma macro WPP_CONTROL_GUIDS em um arquivo de cabeçalho. Esta macro define um GUID e os sinalizadores de rastreamento e para as mensagens de rastreamento do seu driver. (Para cada um dos drivers de exemplo baseados em UMDF do WDK, o arquivo de cabeçalho Internal.h inclui essa macro.)
Inclua uma macro WPP_INIT_TRACING na rotina DllMain do driver. Esta macro ativa o rastreamento de software em seu driver. (Para cada um dos drivers de exemplo baseados em UMDF do WDK, o arquivo de cabeçalho DllSup.h inclui essa macro.)
Inclua uma macro WPP_CLEANUP na rotina DllMain do driver. Esta macro desativa o rastreamento de software no seu driver. (Para cada um dos drivers de exemplo baseados em UMDF do WDK, o arquivo de cabeçalho DllSup.h inclui essa macro.)
Use a macro DoTraceMessage, ou uma versão personalizada da macro, no driver para criar mensagens de rastreamento. (Para cada um dos drivers de exemplo baseados em UMDF do WDK, o arquivo de cabeçalho Internal.h inclui uma macro personalizada.)
Abra as Páginas de Propriedades do seu projeto de controlador. Clique com o botão direito do mouse no projeto de driver no Gerenciador de Soluções e selecione Propriedades. Nas Páginas de Propriedades do controlador, selecione Propriedades de Configuraçãoe depois Wpp. No menu Geral , defina Executar Rastreamento WPP como Sim. No menu Opções de Arquivo, deve-se também especificar o arquivo de modelo WPP do framework, por exemplo:
{km-WdfDefault.tpl}*.tmh
Para obter mais informações sobre como adicionar mensagens de rastreamento ao driver, consulte Adicionando macros WPP a um driver.
Exemplos de drivers que utilizam rastreamento de software WPP
Todos os drivers de exemplo baseados em UMDF no WDK fornecem arquivos DllSup.h, Internal.h e Sources que habilitam o rastreamento de software WPP. A maioria desses drivers de exemplo também usa uma macro personalizada para criar mensagens de rastreamento.
Visualizando as mensagens de rastreio do seu motorista
Se tu adicionaste mensagens de rastreamento ao teu driver, o driver é um provedor de rastreamento. Você pode usar um controlador de rastreamento , como o Tracelog , para controlar uma sessão de rastreamento e criar um log de rastreamento . Você pode utilizar um consumidor de rastreamento , como o Tracefmt, para visualizar as mensagens.
Para obter mais informações sobre como usar as ferramentas de rastreamento de software, consulte Survey of Software Tracing Tools.
Visualização do log de rastreamento UMDF
O arquivo de log UMDF está localizado em %ProgramData%*\\Microsoft\\WDF.
Você pode exibir o arquivo de log UMDF usando ou TraceView ou Tracelog. Ambas as ferramentas exigem arquivos TMF (formato de mensagem de rastreamento) que formatam as mensagens do log de rastreamento. Os arquivos TMF estão disponíveis no WDK, no subdiretório \tools\tracing. (No TraceView, o UMDF aparece como um provedor nomeado com o nome de "UMDF-Framework Trace" ou "Framework Trace", dependendo da versão do UMDF.)
WDF Verifier permite enviar mensagens de seguimento para o registo de seguimento UMDF e para o depurador do kernel. (Você não deve enviar mensagens de rastreamento para o depurador do kernel usando a opção -kd no Tracelog, porque o Tracelog pode interromper o registo de rastreamento no UMDF.)
Você também pode usar a extensão do depurador de !wmitrace para visualizar as mensagens de rastreamento no depurador:
No WinDbg, anexe à instância de WUDFHost que hospeda o driver. Para obter mais informações, consulte Como ativar a depuração de um driver UMDF.
Se o driver usa a versão 1.11 ou posterior e você está usando o depurador do kernel do Windows 8 ou posterior, você pode pular esta etapa. Se o driver usa uma versão do UMDF anterior à 1.11, use !wmitrace.tmffile ou !wmitrace.searchpath para especificar um arquivo de formato de mensagem de rastreamento (.tmf) específico da plataforma ou um caminho para um arquivo .tmf. Os arquivos .tmf estão localizados em subdiretórios específicos da plataforma no WDK.
Use o comando !wmitrace.logdump para exibir o conteúdo dos buffers de rastreamento:
!wmitrace.logdump WudfTrace
Controlando mensagens de rastreamento
Você pode controlar mensagens de rastreamento UMDF com a interface do usuário que WDF Verifier fornece ou modificando valores do Registro. Você deve usar o WDF Verifier interface quando possível, porque os valores do Registro podem mudar em versões futuras do UMDF. Além disso, você não deve acessar esses valores em arquivos INF ou no código do driver.
Atualmente, você pode modificar os seguintes valores do Registro, que estão localizados sob a chave do Registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF:
O valor LogEnable controla se o UMDF cria um registo de rastreamento para o seu driver. Se esse valor for definido como 1, o UMDF criará um log de rastreamento.
O valor LogLevel controla a quantidade de informações que as mensagens de tracing UMDF contêm. O valor padrão para LogLevel é 3, o que faz com que as mensagens de rastreamento UMDF contenham mensagens de erro e aviso. Defina esse valor como 7 para incluir mensagens de erro e aviso, além de mensagens informativas sem erro. Defina-o como 15 para incluir todas as informações de rastreamento que o UMDF é capaz de fornecer.
O valor LogKd controla se o UMDF envia mensagens de rastreamento para o depurador do kernel. Se LogKd estiver definido como 1, o UMDF enviará suas mensagens de rastreamento para o depurador do kernel.
O valor LogFlushPeriodSeconds especifica com que frequência, em segundos, as mensagens de rastreamento são gravadas no log de rastreamento.
O valor LogMinidumpType contém sinalizadores que especificam o tipo de informação que um ficheiro de minidump conterá, caso seja produzido. Para obter mais informações sobre esses sinalizadores, consulte a enumeração MINIDUMP_TYPE.
Você pode encontrar mais valores do Registro na chave do Registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF. Você não deve modificar esses valores.