Windows.Devices.Usb 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此命名空間會定義 UWP app 可用來與WinUSB裝置通訊的Windows 執行階段類別。 這些裝置是由收件匣 winusb.sys
驅動程式處理,並由特定 Microsoft OS 描述元識別。
有效的 WinUSB 裝置將具有相容的識別碼 USB\MS_COMP_WINUSB
裝置支援
此命名空間支援大部分的 WinUSB 裝置。 不過,它不提供下列裝置類別的 USB 裝置存取權:
- 音訊 (
0x01
) - HID ()
0x03
- 影像 (
0x06
) - 印表機 (
0x07
) - 大型儲存體 (
0x08
) - 智慧卡 (
0x0B
) - 音訊/視訊 (
0x10
) - 無線控制器 (
0xE0
)
USB 裝置功能
存取 USB 裝置的 UWP 應用程式必須在其資訊清單的功能節點中包含特定裝置功能資料。 此資料會識別裝置及其用途 (或函式) 。 請注意,某些裝置可能會有多個功能。
自 Windows 10 版本 1809 (2018 年 10 月更新)
<DeviceCapability Name="usb"/>
Windows 10 版本 1809 (2018 年 10 月更新) 之前
自 1809 起,VendorId/ProductId和函式類型不再需要指定,而且會在較新的系統上忽略。 如果以低於 1809 的系統為目標,請參閱 舊版 USB 裝置功能。
疑難排解
- 確認 USB 功能 (
usb
) 位於應用程式資訊清單中。 - 確認使用者已授與應用程式使用 USB 裝置的許可權。
- 驗證裝置類型不是指定為無法存取的裝置類型。
- 除非在具有內嵌模式和
lowLevelDevices
功能的 SKU 上執行,否則機器內部裝置DEVPKEY_Device_InLocalMachineContainer == TRUE
() 通常無法存取。 - 具有包含上/下層篩選驅動程式之堆疊的裝置通常 無法 存取。 這些有時會由協力廠商新增,以啟用 自訂硬體的額外功能。
- 裝置限制部分取決於
winusb.sys
裝置列舉期間,可能會根據裝置/類別篩選準則,將 WinUSB 裝置介面上的裝置介面GUID_DEVINTERFACE_WINUSB_WINRT
屬性DEVPKEY_DeviceInterface_Restricted
TRUE
設定為 。 - 尋找 和
LowerFilters
屬性,即可使用 DeviceManagerUpperFilters
判斷裝置UpperFilter/LowerFilter驅動程式是否存在。 - 尋找 和
Class lower filters
屬性,即可使用 DeviceManagerClass upper filters
判斷 WinUSB 類別UpperFilter/LowerFilter驅動程式的存在。 - 呼叫 ,即可檢查
CM_Get_Device_Interface_Property
裝置介面屬性,其中pszDeviceInterface
與 傳遞至 FromIdAsync的字串相同。
- 裝置限制部分取決於
- 使用驅動程式開發人員建立硬體支援應用程式,即可略過這些限制
類別
UsbBulkInEndpointDescriptor |
USB 大量 IN 端點的端點描述項。 描述項會在單一傳輸中指定端點類型、方向、數位,以及可從端點讀取的最大位元組數目。 |
UsbBulkInPipe |
表示基礎 USB 驅動程式開啟以與裝置的 USB 大量 IN 端點通訊的管道。 應用程式可以從管道取得輸入資料流程,並從端點讀取存取資料。 |
UsbBulkOutEndpointDescriptor |
USB 大量 OUT 端點的端點描述項。 描述項會指定端點類型、方向、數位,以及可在單一傳輸中寫入端點的最大位元組數目。 |
UsbBulkOutPipe |
表示基礎 USB 驅動程式開啟以與裝置的 USB 大量 OUT 端點通訊的管道。 物件提供輸出資料流程的存取權,讓應用程式可以寫入資料以傳送至端點。 |
UsbConfiguration |
提供 USB 組態、其描述項和該組態內定義的介面的相關資訊。 如需 USB 設定的說明,請參閱通用序列匯流排 (USB) 規格中的第 9.6.3 節。 |
UsbConfigurationDescriptor |
從 USB 組態描述元的前 9 個位元組衍生資訊。 當設定為使用中,以及該組態中包含的介面數目時,此資訊包括裝置的電源功能。 如需組態描述元的說明,請參閱第 9.6.3 節通用序列匯流排規格。 如需描述項欄位的相關資訊,請參閱:
|
UsbControlRequestType |
提供 USB 控制項傳輸、控制要求類型、資料是從主機傳送還是傳送到主機,以及裝置中要求收件者的相關資訊。 |
UsbDescriptor |
提供描述項類型的相關資訊、其大小 (位元組) ,以及取得描述項資料。 |
UsbDevice |
代表 USB 裝置。 物件提供方法與屬性,讓應用程式可用來列舉 WinUSB 裝置,以及傳送 IN 和 OUT 控制傳輸。 |
UsbDeviceClass |
提供一種方式,讓應用程式藉由指定類別程式碼、子類別程式碼和裝置所定義的通訊協定程式碼,取得 AQS) 字串 (進階查詢語法。 這個類別中的屬性會傳入 GetDeviceClassSelector的呼叫中。 |
UsbDeviceClasses |
提供一種方式,讓您根據裝置的 USB 裝置類別擷取 UsbDeviceClass 物件。 此類別中定義的屬性代表支援的 USB 裝置類別,並傳回 UsbDeviceClass 物件。 如需 USB 裝置類別的相關資訊,請參閱 核准類別規格檔的官方 USB 網站。 |
UsbDeviceDescriptor |
從裝置的 USB 裝置描述項衍生資訊。 如需裝置描述元的說明,請參閱通用序列匯流排規格中的表格 9.8。 |
UsbEndpointDescriptor |
從端點的 USB 端點描述項衍生資訊,例如類型、方向和端點編號。 此物件也會根據端點類型取得特定的端點描述項。 如需端點描述元的說明,請參閱通用序列匯流排規格中的第 9.6.5 節:
|
UsbInterface |
提供 USB 介面的相關資訊,包括其端點、介面支援的替代設定數目,以及取得這些設定的整個描述項集。 它也會取得與介面所支援端點相關聯的管道。 |
UsbInterfaceDescriptor |
描述介面描述項中介面) 的 USB 替代設定 (。 如需介面描述元的說明,請參閱通用序列匯流排規格中的第 9.6.5 節:
|
UsbInterfaceSetting |
提供替代設定的相關資訊,並選取該設定。 應用程式可以取得設定及其端點的 USB 介面描述項,並判斷此設定目前是否已選取。 |
UsbInterruptInEndpointDescriptor |
USB 中斷 IN 端點的端點描述項。 描述項會在單一傳輸中指定端點類型、方向、數位,以及可從端點讀取的最大位元組數目。 應用程式也可以取得主機輪詢端點以取得資料的頻率相關資訊。 |
UsbInterruptInEventArgs |
表示當做參數傳遞至 DataReceived 事件的事件處理常式的物件。 |
UsbInterruptInPipe |
表示基礎 USB 驅動程式開啟以與裝置的 USB 中斷 IN 端點通訊的管道。 物件也可讓應用程式指定事件處理常式。 從端點讀取資料時所叫用的處理常式。 |
UsbInterruptOutEndpointDescriptor |
USB 中斷 OUT 端點的端點描述項。 描述項會指定端點類型、方向、數位,以及可在單一傳輸中寫入端點的最大位元組數目。 應用程式也可以取得主機輪詢端點以傳送資料的頻率相關資訊。 |
UsbInterruptOutPipe |
表示基礎 USB 驅動程式開啟以與裝置的 USB 中斷 OUT 端點通訊的管道。 物件提供輸出資料流程的存取權,讓應用程式可以寫入資料以傳送至端點。 |
UsbSetupPacket |
描述 USB 控制傳輸的設定封包。 如需安裝封包的說明,請參閱通用序列匯流排 (USB) 規格中的表格 9.2。 |
列舉
UsbControlRecipient |
定義常數,指出 USB 控制項傳輸的收件者。 收件者定義于控制要求的安裝封包中。 請參閱通用序列匯流排 (USB) 規格 (www.usb.org) 9.3 一節的表格 9.2。 |
UsbControlTransferType |
定義常數,指出 USB 控制項傳輸的類型:標準、類別或廠商。 |
UsbEndpointType |
定義常數,指出 USB 端點的類型:控制、大量、不時或中斷。 |
UsbReadOptions |
定義組態旗標的常數,這些旗標可以針對主機針對 USB 大量 IN 端點開啟的 USB 管道進行設定。 |
UsbTransferDirection |
定義常數,指出 USB 傳輸的方向:IN 或 OUT 傳輸。 |
UsbWriteOptions |
定義組態旗標的常數,這些旗標可以針對主機針對 USB OUT 端點開啟的 USB 管道進行設定。 |