Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A ferramenta Monitor de Rede (NetMon.exe) é um aplicativo baseado no Windows arquivado que você pode usar para exibir rastreamentos de componentes do WPD. A ferramenta Monitor de Rede substituiu WpdMon.exe.
Instalando e configurando NetMon.exe
Para instalar e configurar a ferramenta Monitor de Rede, conclua estas etapas:
Baixar e instalar NetMon.exe.
Baixe e instale o WDK (Windows Driver Kit).
Instale os analisadores do WPD em seu computador de desenvolvimento iniciando uma instância de Powershell.exe com permissões de Administrador e executando a seguinte sequência de comandos.
PowerShell -ExecutionPolicy RemoteSigned
cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb..\NplAutoProfile.ps1
cd ..\wpd
..\NplAutoProfile.ps1
Os analisadores do WPD são incluídos no WDK (Windows Driver Kit).
Configure as opções NetMon.exe através do diálogo Ferramentas/Opções:
- Na guia Geral, selecione a caixa Usar fonte de largura fixa no Resumo do Quadro.
- Na guia Regras de Cor , selecione Abrir e selecione
C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Selecione Abrir, seguido por OK.
Depois de concluir essas etapas, NetMon.exe estará pronto para examinar os arquivos de rastreamento do WPD. Siga as instruções na seção Coletando rastreamentos .
Coletando vestígios
Para gerar rastreamentos, crie um script de comando. Copie o seguinte para um arquivo de texto e salve-o com a extensão de nome de arquivo .cmd.
echo off
@REM ---------------------------------------------------------------------------------------
@REM UNCOMMENT THE LOGMAN COMMANDS FOR THE FOLLOWING PROVIDERS AS REQUIRED
@REM Microsoft-Windows-WPD-API To log API traffic
@REM Microsoft-Windows-WPD-MTPClassDriver To log MTP command, response and datasets
@REM Microsoft-Windows-WPD-MTPUS To log USB traffic at WpdMtpUS layer
@REM Microsoft-Windows-WPD-MTPIP To log IP traffic at WpdMtpIP layer
@REM Microsoft-Windows-WPD-MTPBT To log BT traffic at WpdMtpBt layer
@REM Microsoft-Windows-USB-USBPORT To log USB core layer traffic
@REM Microsoft-Windows-USB-USBHUB To log USB core layer traffic
@REM ---------------------------------------------------------------------------------------
@REM Start Logging
logman start -ets WPD -p Microsoft-Windows-WPD-API -bs 100 -nb 128 640 -o wpd_trace.etl
logman update -ets WPD -p Microsoft-Windows-WPD-MTPClassDriver -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPUS -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPIP -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPBT -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-USB-USBPORT -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-USB-USBHUB -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-Kernel-IoTrace 0 2
echo.
echo Please run your scenario now and
pause
@REM Stop logging
logman stop -ets WPD
Depois de criar o arquivo de comando, execute-o em um prompt de comando do modo Administrador.
Se você usou o conteúdo do arquivo de comando de exemplo, seus rastreamentos serão armazenados no arquivo wpd_trace.etl.
Visualizando rastreamentos
Para exibir seus rastreamentos, inicieNetMon.exe, selecione o menu Arquivo/Abrir/Capturar e abra o arquivo wpd_trace.etl coletado. Quando você abre um arquivo de rastreamento, NetMon.exe exibe os rastreamentos em várias camadas:
- WPDAPI – Exibe informações no nível da API do WPD com comandos e respostas do WPD
- WPDMTP – Exibe informações do Protocolo de Transferência de Mídia (MTP) com comandos e respostas MTP
- Transporte (WPDMTPUS ou WPDMTPIP ou WPDMTPBT) – mostra pacotes de nível de transporte
A imagem a seguir mostra uma solicitação WPDAPI no nível da API. A solicitação percorre o WPDMTP na forma de solicitações MTP que chegam a um transporte e, em seguida, se propagam.
- O registro no nível de transporte não armazena os dados propriamente ditos durante a etapa de transferência de dados. Examine a mensagem de resposta WPDMTP para os conjuntos de dados que foram enviados ou recebidos durante comandos como GetDeviceInfo ou SendObjectPropList.
- Se você selecionar uma linha de resposta WPDMTP na janela Resumo do Quadro , o item correspondente se expandirá na janela Detalhes do Quadro .
- Selecione "+" na janela Detalhes do Quadro para expandir ainda mais e explorar. Se uma operação MTP tiver uma fase de dados, o conjunto de dados recebido do dispositivo estará disponível no campo DataSetOfDataPhase de um item de resposta WPDMTP.
- Você pode selecionar para expandir os itens e ver que a janela Detalhes do Quadro exibe mensagens amigáveis do WPD/MTP. A convenção seguida ao escrever os analisadores do WPD é que você pode ver o resumo dos detalhes no nível do cabeçalho. Por exemplo, em uma chamada GetServiceCapabilities , o campo DataSetOfDataPhase mostra ao lado dele o número de formatos nesse conjunto de dados.
- Você pode remover as colunas Origem e Destino na janela Resumo do Quadro para melhorar a clareza
- Quando você seleciona um campo na janela Detalhes do Quadro , o valor correspondente é realçado na janela Detalhes do Hex .
Filtragem com NetMon.exe
A ferramenta Monitor de Rede fornece vários recursos de filtragem.
Para mostrar apenas os rastreamentos do MTP, insira
!wpdmtpna janela Exibir Filtro e selecione Aplicar.Para filtrar casos em que o driver retornou um erro:
- Insira wpderror != 0 na janela Exibir Filtro e selecione Aplicar.
Você pode filtrar todas as chamadas de método para um determinado cenário. Por exemplo, o filtro a seguir recuperaria todas as chamadas para GetServiceProperties:
WPDMTP.CorrespondingCommand.MTPOpcode == 0x9304
Da mesma forma, o filtro a seguir recuperaria as mesmas chamadas de método:
WPDMTP.CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES