Suspension sélective pour les périphériques HID sur USB
La révision 2.0 de la spécification du bus série universel spécifie une fonctionnalité de suspension sélective USB. En utilisant cette fonctionnalité, le système d’exploitation Windows peut suspendre sélectivement les périphériques USB inactifs. Cela permet à Windows de gérer efficacement les exigences en matière d’alimentation du système global. Pour plus d’informations sur la façon dont Windows prend en charge la fonctionnalité de suspension sélective USB, consultez Suspension sélective USB. (Cette ressource n’est peut-être pas disponible dans certaines langues et certains pays.)
Par défaut, la suspension sélective USB est désactivée par Windows afin de fournir une expérience utilisateur cohérente et d’éviter la latence de reprise après la suspension sélective.
Un appareil HID qui prend en charge la suspension sélective doit être conçu pour :
- Conservez la première entrée, l’interaction tactile, le mouvement ou l’appui sur la touche lors de la reprise de la suspension sélective.
- Veillez de la suspension sélective lors du mouvement.
- Conservez la liaison sans fil (le cas échéant).
- Maintenez l’alimentation des voyants status actifs, tels que le verrou NUM ou le verrou CAPS.
- Reprendre à partir d’une suspension sélective sans aucun délai perçu par l’utilisateur.
Windows 8 prend en charge deux méthodes pour activer la suspension sélective pour les périphériques USB HID. Les voici :
- Descripteur de système d’exploitation Microsoft [PREFERRED] : le descripteur de propriétés étendues du descripteur de système d’exploitation Microsoft peut être utilisé pour écrire la ou les clés de Registre nécessaires pour prendre en charge la suspension sélective USB HID.
- INF fourni par le fournisseur : le fabricant du matériel peut fournir un fichier INF (qui correspond à l’ID matériel USB du devnode HID) pour installer les clés de Registre appropriées.
Microsoft recommande aux fournisseurs de matériel et aux fabricants de PC d’utiliser la première option pour activer la suspension sélective USB HID. Les avantages de cette option sont les suivants :
- Les fournisseurs de matériel et les fabricants de PC n’ont pas besoin d’installer un fichier INF supplémentaire.
- Le paramètre de Registre nécessaire est automatiquement renseigné sur les nouvelles installations Windows 8.
- Le paramètre de Registre nécessaire est conservé lors d’une mise à niveau vers Windows 8.
- L’utilisateur ne peut pas perdre (ou désactiver) la fonctionnalité de suspension sélective en désinstallant l’INF.
Toutefois, les fournisseurs de matériel et les fabricants de PC qui souhaitent continuer à utiliser l’approche INF peuvent utiliser l’exemple ci-dessous. Voici un exemple de fichier INF qui montre comment activer cette fonctionnalité USB pour les appareils HID dans 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"
Où :
La section Version INF doit avoir les directives CLASSGUID et DriverVer définies comme suit :
La directive CLASSGUID doit spécifier le GUID de classe Microsoft pour les appareils HID. Ce GUID a la valeur {745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
La directive DriverVer doit avoir une valeur qui a une date plus récente et un numéro de version supérieur à la valeur spécifiée par la directive DriverVer dans Input.inf.
Les sections VendorXYZDevice* spécifient l’identificateur matériel (ID) pour l’appareil HID du fournisseur. L’ID matériel se compose d’un identificateur de fournisseur (VID) et d’un identificateur de produit (PID). Chaque ID matériel d’un appareil doit avoir des valeurs VID/PID propres au fournisseur et à l’appareil. Cela garantit que le même ID matériel ne correspond pas à plusieurs noms et paramètres
Les sections VendorXYZDevice_Install.NT et VendorXYZDevice_Install.NT.HW sont des sections INF DDInstall. Dans cet exemple, ces sections contiennent des directives INF Include et Needs .
Les directives Include font référence au fichier Input.inf fourni par le système, qui contient les sections INF nécessaires pour activer la fonctionnalité de suspension sélective USB pour l’appareil HID du fournisseur.
Les directives Needs indiquent les sections de Input.inf qui doivent être traitées lors de l’installation de l’appareil. Dans ce cas, la section HID_SelSus_Inst est sélectionnée au lieu de la section de HID_Inst par défaut, qui ne prend pas en charge la suspension sélective.
La section VendorXYZDevice_Install.NT.Services est une section INF DDInstall.HW. Dans cet exemple, la section contient également les mêmes valeurs pour les directives INF Include et Needs .