共用方式為


透過 USB 裝置選擇性暫停 HID

通用序列總線規格的修訂 2.0 指定 USB 選擇性暫停功能。 藉由使用這項功能,Windows 操作系統可以選擇性地暫停閑置的 USB 裝置。 這可讓 Windows 有效率地管理整體系統的電源需求。 如需 Windows 如何支援 USB 選擇性暫停功能的詳細資訊,請參閱 USB 選擇性暫停。 (某些語言和國家/地區可能無法使用此資源。)

根據預設,Windows 會停用 USB 選擇性暫停,以提供一致的用戶體驗,並避免從選擇性暫停繼續延遲。

支援選擇性暫停的 HID 裝置必須設計成:

  • 從選擇性暫停繼續時,保留第一個輸入、觸控、移動或按鍵按下。
  • 在移動時從選擇性暫停喚醒。
  • 如果適用) ,請維護無線連結 (。
  • 維護任何作用中狀態 LED 的電源,例如 NUM 鎖定或 CAPS 鎖定。
  • 從選擇性暫停繼續,使用者不會察覺到任何延遲。

Windows 8 支援兩種方法來啟用 HID USB 裝置的選擇性暫停。 如下所示:

  1. Microsoft OS 描述元 [PREFERRED]:Microsoft OS 描述元的擴充屬性描述元可用來撰寫必要的登錄機碼, (s) 以支援 USB HID 選擇性暫停。
  2. 廠商提供的 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"

其中:

  1. INF 版本區段應設定 CLASSGUIDDriverVer 指示詞,如下所示:

    • CLASSGUID 指示詞必須指定 HID 裝置的 Microsoft 類別 GUID。 此 GUID 的值 {745a17a0-74d3-11d0-b6fe-00a0c90f57da}。

    • DriverVer 指示詞的值必須具有比 Input.inf 中 DriverVer 指示詞所指定的值還要新的日期和版本號碼。

  2. VendorXYZDevice* 區段會指定廠商 HID 裝置的硬體識別碼 (標識符) 。 硬體標識碼是由 (VID) 和產品識別碼 (PID) 所組成。 裝置的每個硬體識別碼都必須有廠商和裝置唯一的 VID/PID 值。 這可確保相同的硬體標識碼不會對應至多個名稱和設定

  3. VendorXYZDevice_Install.NT 和 VendorXYZDevice_Install.NT.HW 區段是 INF DDInstall 區段。 在此範例中,這些區段包含 INF IncludeNeeds 指示詞。

    Include 指示詞會參考系統提供的 Input.inf 檔案,其中包含啟用廠商 HID 裝置 USB 選擇性暫停功能所需的 INF 區段。

    Needs 指示詞指出在裝置安裝期間應該處理 Input.inf 中的哪些區段。 在此情況下,會選取 [HID_SelSus_Inst] 區段,而不是不支援選擇性暫停的預設HID_Inst區段。

  4. VendorXYZDevice_Install.NT.Services 區 段是 INF DDInstall.HW 區段。 在此範例中,區段也包含 INF IncludeNeeds 指示詞的相同值。