Il programma di esempio USBView.exe non enumera periferiche precedenti a Windows XP SP1 eseguono

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 838100
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Si potrebbero verificano i sintomi seguenti quando si utilizza il programma USBView.exe per enumerare periferiche universal serial bus (USB) e host controller:
  • Problema A - il controller host USB 2.0 non vengono enumerati nei computer basati su Microsoft Windows 2000.
  • Problema B - periferiche USB associate non vengono visualizzate.

    La versione del programma USBView.exe generato mediante l'utilizzo di Windows XP Service Pack 1 Windows Driver Development Kit (DDK) non mostra le periferiche USB quando si esegue l'esempio in sistemi operativi seguenti:
    • La versione di rilascio di Microsoft Windows XP.
    • Qualsiasi versione di Microsoft Windows 2000, Microsoft Windows Millennium Edition o Microsoft Windows 98.
Cause

Problema A - controller host USB 2.0 non vengono enumerati nei computer basati su Windows 2000

Il programma USBView.exe non enumera controller host USB 2.0 di computer basati su Windows 2000, poiché due diversi stack di driver USB eseguiti nei computer che eseguono Windows 2000, come indicato di seguito:
  • Il primo stack viene utilizzato per controller host USB 1.1.
  • Lo stack secondo viene utilizzato per controller host USB 2.0.
Entrambi stack di driver USB creare i nomi di collegamento simbolico che hanno il formato seguente, dove x rappresenta un numero di istanza:
\DosDevices\HCD x
Entrambi stack di driver USB avviare il numero di istanza 0. Ciò significa che entrambi gli stack di driver tenta di creare il nome del collegamento simbolico seguente:
\DosDevices\HCD0
Nome del collegamento simbolico viene creato da stack di driver tenta di creare il collegamento simbolico nome dopo lo stack di driver USB 1.1 l'USB 2.0. Pertanto, il nome di collegamento simbolico non viene creato e il controller host USB 2.0 non possono accedere tramite un collegamento simbolico.

Problema B - periferiche USB associate non vengono visualizzate

Lo stack di driver USB incluso in Windows XP SP1 include il supporto per un nuovo controllo di input/output (IOCTL) che è denominato come segue:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
Questo IOCTL sostituisce la precedente versione dell'IOCTL denominato IOCTL_USB_GET_NODE_CONNECTION_INFORMATION. La versione precedente dell'IOCTL utilizzata nelle versioni precedenti del programma USBView.exe.

Il programma USBView.exe è stato modificato per utilizzare questo IOCTL più recenti quanto restituisce informazioni se la periferica USB sta funzionando ad alta velocità.

Se si tenta di utilizzare IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX precedente a Windows XP SP1 computer, il tentativo non riuscito. Inoltre, non sono possibile visualizzare informazioni sulla periferica USB.
Risoluzione

Problema A - controller host USB 2.0 non vengono enumerati nei computer basati su Microsoft Windows 2000

Oltre a supportare l'utilizzo di un nome di collegamento simbolico, il nuovo stack di driver USB supporta l'utilizzo di un'interfaccia di dispositivo basato su GUID.

La funzione di EnumerateHostControllers nel file Enum.c include una sezione in cui i commenti illustrano come utilizzare questa tecnica per enumerare il controller host. È possibile modificare questa funzione per rilevare quando è in esecuzione su un computer basato su Windows 2000. È quindi possibile utilizzare il metodo di enumerazione basato su GUID e il metodo di collegamento simbolico per enumerare tutti i controller di host USB.

Problema B - periferiche USB associate non vengono visualizzate

È possibile modificare tutti gli utilizzi dell'IOCTL di nuovo, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, nel programma USBView.exe. È possibile modificare l'IOCTL, in modo che se l'IOCTL non riesce, il programma USBView.exe ricorre per utilizzare la versione precedente dell'IOCTL, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION.

Questo comportamento di fallback consente il programma USBView.exe ancora report se una periferica è in esecuzione a elevata velocità in un computer che esegue Windows XP SP1 o versioni successive di Windows. Inoltre, questo comportamento di fallback visualizzata dispositivi USB sul precedente a Windows XP SP1 eseguono.
Informazioni
Questo problema è stato risolto in Windows Server 2003 Service Pack 1 DDK.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 838100 - Ultima revisione: 12/08/2015 06:34:34 - Revisione: 2.0

Microsoft Windows XP Driver Development Kit

  • kbnosurvey kbarchive kbmt kbprb KB838100 KbMtit
Feedback