O programa de exemplo USBView.exe não enumera dispositivos em versões anteriores ao Windows computadores baseados no XP SP1

Traduções de Artigos Traduções de Artigos
Artigo: 838100 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Poderá detectar os seguintes sintomas quando utiliza o programa USBView.exe para enumerar dispositivos universal serial bus (USB) e controladores de anfitrião:
  • Problema A - controladores de anfitrião USB 2.0 não são enumeradas nos computadores baseados no Microsoft Windows 2000.
  • Problema B - dispositivos USB anexo não são apresentados.

    A versão do programa USBView.exe concebida utilizando o Windows XP Service Pack 1 Windows Driver Development Kit (DDK) não mostrará quaisquer dispositivos USB quando executar o exemplo nos seguintes sistemas operativos:
    • A versão do Microsoft Windows XP.
    • Qualquer versão do Microsoft Windows 2000, Microsoft Windows Millennium Edition ou Microsoft Windows 98.

Causa

Problema A - controladores de anfitrião USB 2.0 não são enumeradas nos computadores baseados no Windows 2000

O programa USBView.exe não enumera controladores de anfitrião USB 2.0 em computadores baseados no Windows 2000 porque duas pilhas de controlador USB diferentes executado em computadores baseados no Windows 2000, da seguinte forma:
  • A primeira pilha é utilizada para controladores de anfitrião USB 1.1.
  • A segunda pilha é utilizada para controladores de anfitrião USB 2.0.
Ambas as pilhas do controlador USB criar ligação simbólica nomes com o seguinte formato, onde x representa um número de instância:
\DosDevices\HCD x
Ambas as pilhas do controlador USB iniciar o número de instância 0. Este comportamento significa que ambas as pilhas de controlador tentar criar o seguinte nome de ligação simbólica:
\DosDevices\HCD0
O USB 2.0 pilha do controlador tenta criar esta ligação simbólica nome depois da pilha do controlador USB 1.1 cria o nome de ligação simbólica. Assim, o nome de ligação simbólica não é criado e o controlador de anfitrião USB 2.0 não pode ser acedido através de uma ligação simbólica.

Problema B - não são apresentados dispositivos USB anexo

A pilha do controlador USB incluído no Windows XP SP1 inclui suporte para um novo controlo de entrada/saída (IOCTL) com o nome da seguinte forma:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
Este IOCTL substitui a versão anterior do IOCTL denominado IOCTL_USB_GET_NODE_CONNECTION_INFORMATION. A versão anterior do IOCTL foi utilizada em versões anteriores do programa USBView.exe.

O programa USBView.exe foi modificado para utilizar esta mais recente IOCTL porque devolve informações sobre se o dispositivo USB está a funcionar a alta velocidade.

Se tentar utilizar IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX em versões anteriores ao Windows computadores baseados no XP SP1, a tentativa não tiver êxito. Além disso, são apresentadas sem informações sobre o dispositivo USB.

Resolução

Problema A - controladores de anfitrião USB 2.0 não são enumeradas nos computadores baseados no Microsoft Windows 2000

Para além de suportar a utilização de um nome de ligação simbólica, a nova pilha do controlador USB suporta a utilização de uma interface de dispositivo baseado no GUID.

A função EnumerateHostControllers no ficheiro Enum.c inclui uma secção cujos comentários explicam como utilizar esta técnica para enumerar o controlador anfitrião. É possível modificar esta função para detectar quando estiver a utilizar um computador baseado no Windows 2000. Em seguida, é possível utilizar tanto o método de enumeração com base no GUID e o método de ligação simbólica para enumerar todos os controladores de anfitrião USB.

Problema B - não são apresentados dispositivos USB anexo

Pode modificar todas as utilizações do IOCTL novo, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, no programa USBView.exe. Pode modificar o IOCTL para que se o IOCTL não tiver êxito, o programa USBView.exe reverte para utilizar a versão anterior do IOCTL, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION.

Este comportamento reversão permite que o programa USBView.exe ainda relatório se um dispositivo está a utilizar a alta velocidade num computador com o Windows XP SP1 ou versões posteriores do Windows. Além disso, este comportamento reversão também apresenta dispositivos USB no anterior ao Windows computadores baseados no XP SP1.

Mais Informação

Este problema foi corrigido no Windows Server 2003 Service Pack 1 DDK.

Propriedades

Artigo: 838100 - Última revisão: 4 de agosto de 2005 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Driver Development Kit
Palavras-chave: 
kbmt kbprb KB838100 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 838100

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com