透過 USB 裝置選擇性暫停 HID
通用序列總線規格的修訂 2.0 指定 USB 選擇性暫停功能。 藉由使用這項功能,Windows 操作系統可以選擇性地暫停閑置的 USB 裝置。 這可讓 Windows 有效率地管理整體系統的電源需求。 如需 Windows 如何支援 USB 選擇性暫停功能的詳細資訊,請參閱 USB 選擇性暫停。 (某些語言和國家/地區可能無法使用此資源。)
根據預設,Windows 會停用 USB 選擇性暫停,以提供一致的用戶體驗,並避免從選擇性暫停繼續延遲。
支援選擇性暫停的 HID 裝置必須設計成:
- 從選擇性暫停繼續時,保留第一個輸入、觸控、移動或按鍵按下。
- 在移動時從選擇性暫停喚醒。
- 如果適用) ,請維護無線連結 (。
- 維護任何作用中狀態 LED 的電源,例如 NUM 鎖定或 CAPS 鎖定。
- 從選擇性暫停繼續,使用者不會察覺到任何延遲。
Windows 8 支援兩種方法來啟用 HID USB 裝置的選擇性暫停。 如下所示:
- Microsoft OS 描述元 [PREFERRED]:Microsoft OS 描述元的擴充屬性描述元可用來撰寫必要的登錄機碼, (s) 以支援 USB HID 選擇性暫停。
- 廠商提供的 INF:硬體製造商可以提供 INF 檔案 (,該檔案符合 HID 開發人員節點的 USB 硬體識別碼) ,以安裝適當的登錄機碼。
Microsoft 建議硬體廠商和計算機製造商使用第一個選項來啟用 USB HID 選擇性暫停。 此選項的優點包括:
- 硬體廠商和計算機製造商不需要安裝額外的 INF 檔案。
- 新的安裝 Windows 8 會自動填入必要的登錄設定。
- 升級至 Windows 8 時,會保留必要的登錄設定。
- 用戶無法藉由卸載 INF 來遺失 (或停用) 選擇性暫停功能。
不過,想要仍使用 INF 方法的硬體廠商和電腦製造商,可以使用下列範例。 以下是範例 INF 檔案,示範如何在 Windows 中啟用 HID 裝置的此 USB 功能:
; Vendor INF File for USB HID devices
;
; A sample INF for a stand-alone USB HID device that supports
; selective suspend
[Version]
Signature ="$WINDOWS NT$"
Class =HIDClass
ClassGuid ={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider =%VendorName%
DriverVer =09/19/2008,6.0.0.0
CatalogFile =VendorXYZ.cat
PnpLockdown =1
; ================= Class section =====================
[ControlFlags]
ExcludeFromSelect=*
[SourceDisksNames]
1 = %DiskName%,,,""
;*****************************************
; Install Section
;*****************************************
[Manufacturer]
%VendorName% = VendorXYZDevice,NTx86,NTamd64,NTarm
[VendorXYZDevice.NTx86]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4
[VendorXYZDevice.NTamd64]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4
[VendorXYZDevice.NTarm]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4
[VendorXYZDevice_Install.NT]
include = input.inf
needs = HID_SelSus_Inst.NT
[VendorXYZDevice_Install.NT.HW]
include = input.inf
needs = HID_SelSus_Inst.NT.HW
[VendorXYZDevice_Install.NT.Services]
include = input.inf
needs = HID_SelSus_Inst.NT.Services
[Strings]
VendorName = "Vendor XYZ"
DiskName = "Vendor XYZ Installation Disk"
VendorXYZ.DeviceDesc = "VendorXYZ Device"
其中:
INF 版本區段應設定 CLASSGUID 和 DriverVer 指示詞,如下所示:
CLASSGUID 指示詞必須指定 HID 裝置的 Microsoft 類別 GUID。 此 GUID 的值 {745a17a0-74d3-11d0-b6fe-00a0c90f57da}。
DriverVer 指示詞的值必須具有比 Input.inf 中 DriverVer 指示詞所指定的值還要新的日期和版本號碼。
VendorXYZDevice* 區段會指定廠商 HID 裝置的硬體識別碼 (標識符) 。 硬體標識碼是由 (VID) 和產品識別碼 (PID) 所組成。 裝置的每個硬體識別碼都必須有廠商和裝置唯一的 VID/PID 值。 這可確保相同的硬體標識碼不會對應至多個名稱和設定
VendorXYZDevice_Install.NT 和 VendorXYZDevice_Install.NT.HW 區段是 INF DDInstall 區段。 在此範例中,這些區段包含 INF Include 和 Needs 指示詞。
Include 指示詞會參考系統提供的 Input.inf 檔案,其中包含啟用廠商 HID 裝置 USB 選擇性暫停功能所需的 INF 區段。
Needs 指示詞指出在裝置安裝期間應該處理 Input.inf 中的哪些區段。 在此情況下,會選取 [HID_SelSus_Inst] 區段,而不是不支援選擇性暫停的預設HID_Inst區段。
VendorXYZDevice_Install.NT.Services 區 段是 INF DDInstall.HW 區段。 在此範例中,區段也包含 INF Include 和 Needs 指示詞的相同值。