使用 Microsoft 提供的 USB 驅動程式(Usbser.sys)以控制您的通信和通信設備類別(CDC)裝置。 盡可能使用 Windows 隨附的驅動程式。
重要
本文適用於 CDC 控制裝置的製造商。 如果您是客戶遇到 USB 問題,請參閱 修正 Windows 中的 USB-C 問題
Usbser.sys 是使用 Kernel-Mode Driver Framework 實作。 驅動程式支援隨插即用,以及 USB選擇性暫停等電源管理功能。
通用 Windows 平臺 (UWP) 應用程式可以使用 Windows.Devices.SerialCommunication 命名空間所提供的 API,讓應用程式能夠與 CDC 裝置通訊。
Usbser.sys安裝
載入您通訊和 CDC 控制裝置的Microsoft內建驅動程式 (Usbser.sys)。
注意
如果您嘗試安裝 Windows 中包含的 USB 裝置類別驅動程式,則不需要下載驅動程式。 Windows 會自動安裝這些驅動程式。 如果 Windows 未安裝驅動程式,請連絡裝置製造商。 如需 Windows 中包含的 USB 裝置類別驅動程式清單,請參閱 Windows 中包含的 USB 裝置類別驅動程式。
Usbser.inf 位於 %Systemroot%\INF 目錄中。 此設定資訊 (INF) 檔案會將 Usbser.sys 載入為裝置堆疊中的功能裝置物件 (FDO)。 如果您的裝置屬於通訊和 CDC 控制裝置類別, Usbser.sys 會自動載入。 您不需要撰寫自己的 INF 檔案來參考驅動程式。 Windows 會根據相容的標識符比對載入驅動程式,類似於 Windows 中包含的其他 USB 裝置類別驅動程式。
USB\Class_02
USB\Class_02&SubClass_02
若要自動載入 Usbser.sys ,請將類別代碼設定為 02,並將 裝置描述元中的子類別代碼設定為 02。 使用此方法時,您不需要發佈裝置的 INF 檔案,因為系統使用 Usbser.inf。 如需詳細資訊,請參閱 通訊裝置 1.2 的類別定義。
如果您的裝置指定類別代碼為 02,但子類別代碼不是 02,則Usbser.sys不會自動載入。 隨插即用 管理員會嘗試尋找驅動程式。 如果 Windows 找不到合適的驅動程式,裝置可能未載入驅動程式。 您可能需要載入您自己的驅動程式,或撰寫參考另一個內建驅動程式的 INF 檔案。
如果您的裝置指定 02 的類別和子類別代碼,而且您想要載入另一個驅動程式,而不是 Usbser.sys,請寫入 INF 檔案。 在 INF 檔案中,指定要安裝之裝置的硬體識別碼和驅動程式。
設定Usbser.sys的選擇性暫停
Usbser.sys 支援 USB選擇性暫停。 此驅動程式可讓連接的 USB 到序列裝置在不使用時進入低電源狀態,而系統則維持在 S0 狀態。 當與裝置的通訊繼續時,裝置會離開暫停狀態並繼續工作狀態。 此功能預設為停用,但可以透過設定此登錄機碼下的 IdleUsbSelectiveSuspendPolicy 專案來啟用和設定:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
若要設定 Usbser.sys電源管理功能,請將 IdleUsbSelectiveSuspendPolicy 參數設定為:
| 價值觀 | 行為 |
|---|---|
0x00000001 |
處於閒置狀態時,進入選擇性暫停狀態,也就是說,當沒有任何活躍數據傳輸到裝置或從裝置傳送時。 |
0x00000000 |
只有在裝置沒有開啟句柄時,才輸入選擇性暫停。 |
以下列兩種方式之一加入該項目:
撰寫參考安裝 INF 的 INF,並在 HW 中 新增登錄專案。AddReg 區段。
描述擴充屬性OS功能描述元中的登錄專案。 新增自訂屬性區段,將 bPropertyName 字段設定為 Unicode 字串:
IdleUsbSelectiveSuspendPolicy。 將 wPropertyNameLength 設定為 62 個字節。 將 bPropertyData 欄位設定為0x00000001或0x00000000。 屬性值會儲存為小端 32 位整數。如需詳細資訊,請參閱 Microsoft OS 描述元。
開發 USB CDC 裝置的 Windows 應用程式
Windows 應用程式會使用 Windows.Devices.SerialCommunication 命名空間,將要求傳送至 Usbser.sys。 命名空間會定義 Windows 執行時間類別,這些類別會透過序列埠或序列埠的抽象概念與 USB CDC 裝置通訊。 類別可讓您探索序列裝置、讀取和寫入數據,以及控制流量控制的序列特定屬性,例如設定包速率和訊號狀態。