Sospensione selettiva per i dispositivi HID tramite USB
La revisione 2.0 della specifica del bus seriale universale specifica una funzionalità di sospensione selettiva USB. Usando questa funzionalità, il sistema operativo Windows può sospendere in modo selettivo i dispositivi USB inattive. Ciò consente a Windows di gestire in modo efficiente i requisiti di alimentazione del sistema complessivo. Per altre informazioni su come Windows supporta la funzionalità di sospensione selettiva USB, vedere Sospensione selettiva USB. Questa risorsa potrebbe non essere disponibile in alcune lingue e paesi.
Per impostazione predefinita, la sospensione selettiva USB è disabilitata da Windows per offrire un'esperienza utente coerente e per evitare di riprendere la latenza dalla sospensione selettiva.
Un dispositivo HID che supporta la sospensione selettiva deve essere progettato per:
- Conservare il primo input, tocco, spostamento o tasto quando si riprende dalla sospensione selettiva.
- Riattivazione dalla sospensione selettiva sul movimento.
- Mantenere il collegamento wireless (se applicabile).
- Mantenere l'alimentazione in qualsiasi LED di stato attivo, ad esempio blocco NUM o blocco CAPS.
- Riprendere dalla sospensione selettiva senza alcun ritardo percepito dall'utente.
Windows 8 supporta due metodi per abilitare la sospensione selettiva per i dispositivi USB HID. Ecco quali sono:
- Descrittore del sistema operativo Microsoft [PREFERRED]: il descrittore di proprietà estese del sistema operativo Microsoft può essere usato per scrivere le chiavi del Registro di sistema necessarie per supportare la sospensione selettiva USB HID.
- Fornitore fornito INF: il produttore hardware può fornire un file INF (che corrisponde all'ID hardware USB per hiD devnode) per installare le chiavi del Registro di sistema appropriate.
Microsoft consiglia che i fornitori di hardware e i produttori di PC usino la prima opzione per abilitare la sospensione selettiva DI USB HID. I vantaggi di questa opzione sono:
- I fornitori di hardware e i produttori di PC non devono installare un file INF aggiuntivo.
- L'impostazione del Registro di sistema necessaria viene popolata automaticamente nelle nuove installazioni di Windows 8.
- L'impostazione del Registro di sistema necessaria viene mantenuta in un aggiornamento a Windows 8.
- L'utente non può perdere (o disabilitare) la funzionalità Sospensione selettiva disinstallando INF.
Tuttavia, i fornitori di hardware e i produttori di PC che desiderano comunque usare l'approccio INF, possono usare l'esempio seguente. Di seguito è riportato un file INF di esempio che illustra come abilitare questa funzionalità USB per i dispositivi HID in Windows:
; 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"
Dove:
La sezione VERSIONE INF deve avere le direttive CLASSGUID e DriverVer impostate come indicato di seguito:
La direttiva CLASSGUID deve specificare il GUID della classe Microsoft per i dispositivi HID. Questo GUID ha il valore {745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
La direttiva DriverVer deve avere un valore con una data più recente e un numero di versione maggiore del valore specificato dalla direttiva DriverVer in Input.inf.
Le sezioni VendorXYZDevice* specificano l'identificatore hardware (ID) per il dispositivo HID del fornitore. L'ID hardware è costituito da un identificatore del fornitore (VID) e dall'identificatore del prodotto (PID). Ogni ID hardware per un dispositivo deve avere valori VID/PID univoci per il fornitore e il dispositivo. Ciò garantisce che lo stesso ID hardware non corrisponda a più nomi e impostazioni
Le sezioni VendorXYZDevice_Install.NT e VendorXYZDevice_Install.NT.HW sono sezioni INF DDInstall. In questo esempio queste sezioni contengono direttive INF Include and Needs .
Le direttive Include fanno riferimento al file Input.inf fornito dal sistema, che contiene sezioni INF necessarie per abilitare la funzionalità di sospensione selettiva USB per il dispositivo HID del fornitore.
Le direttive Esigenze indicano quali sezioni di Input.inf devono essere elaborate durante l'installazione del dispositivo. In questo caso, la sezione HID_SelSus_Inst è selezionata anziché la sezione HID_Inst predefinita, che non supporta la sospensione selettiva.
La sezione VendorXYZDevice_Install.NT.Services è una sezione INF DDInstall.HW. In questo esempio, la sezione contiene anche gli stessi valori per le direttive INF Include e Needs .