USBView.exe 範例程式無法列舉裝置,Windows XP SP1 電腦前版

文章翻譯 文章翻譯
文章編號: 838100 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當您使用 USBView.exe 程式來列舉通用序列匯流排 (USB) 裝置與主機控制器,您可能會遇到下列徵狀:
  • 問題 A-在 Microsoft Windows 2000 電腦上不列舉 USB 2.0 主機控制器。
  • 問題 B-附加的 USB 裝置並未顯示。

    當您在下列作業系統上執行範例 USBView.exe 程式藉由使用 Windows XP 服務封包 1 Windows 驅動程式開發套件 (DDK) 建置的版本不會顯示任何 USB 裝置:
    • Microsoft Windows XP 發行版本。
    • 任何版本的 Microsoft Windows 2000、 Microsoft Windows 千禧版或 Microsoft Windows 98。

發生的原因

問題由 USB 2.0 主機控制器不是列舉在 Windows 2000 電腦上

USBView.exe 程式無法列舉在 Windows 2000 電腦上的 USB 2.0 主機控制器,因為在兩個不同的 USB 驅動程式堆疊上執行 Windows 2000 電腦,如下所示:
  • 第一個堆疊用於 USB 1.1 主機控制站。
  • 第二個堆疊用於 USB 2.0 主機控制器。
這兩個 USB 驅動程式堆疊建立符號連結名稱具有下列格式其中 x 代表一個執行個體數字:
\DosDevices\HCD x
這兩個 USB 驅動程式堆疊啟動例項編號為 0。這種行為會表示這兩種驅動程式堆疊嘗試建立下列的符號連結名稱:
\DosDevices\HCD0
USB 2.0 驅動程式堆疊會嘗試建立這個符號連結名稱 之後 USB 1.1 驅動程式堆疊建立符號連結名稱。因此,不會建立符號連結名稱,USB 2.0 主機控制器無法存取透過符號連結。

問題 B-附加的 USB 裝置沒有顯示

USB 驅動程式堆疊隨附於 Windows XP SP1 中包括新的輸入/輸出控制項 (IOCTL),它的名稱,如下所示的支援:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
此 IOCTL 取代名為 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION IOCTL 舊版。在較早版本的 USBView.exe 程式中使用 [IOCTL 舊版。

USBView.exe 程式已修改為使用這個較新的 IOCTL,因為它會傳回有關是否 USB 裝置在高速下操作的資訊。

如果嘗試在 Windows XP SP1 電腦前版上使用 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 嘗試不成功。此外,顯示沒有 USB 裝置的資訊。

解決方案

問題由 USB 2.0 主機控制器不是列舉在 Microsoft Windows 2000 電腦上

除了支援使用符號連結名稱,新的 USB 驅動程式堆疊支援 GUID 裝置介面的使用。

EnumerateHostControllers 函式 Enum.c 檔案中的包括其註解說明如何使用這項技術來列舉主控制器的區段。 您可以修改此函式來偵測在 Windows 2000 架構的電腦上執行時。您可以使用 GUID 為基礎的列舉型別方法和符號連結方法來列舉所有 USB 主機控制站。

問題 B-附加的 USB 裝置沒有顯示

您可以修改新 IOCTL IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX,USBView.exe 程式中的所有使用。您可以修改此 IOCTL,使如果未順利完成 [IOCTL,USBView.exe 程式退回使用較早版本的的 IOCTL IOCTL_USB_GET_NODE_CONNECTION_INFORMATION。

此後援行為可讓 USBView.exe 程式仍然報表是否裝置,會在正在執行 Windows XP SP1 或更新版本的 Windows 的電腦上執行最高速度。此外,此後援行為也會顯示 USB 裝置上 Windows XP SP1 電腦前版。

其他相關資訊

這個問題已經修正在 Windows Server 2003 服務封包 1 DDK。

屬性

文章編號: 838100 - 上次校閱: 2005年8月4日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Windows XP Driver Development Kit
關鍵字:?
kbmt kbprb KB838100 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:838100
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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