Inscription au délai d’inactivité immédiat
Cette rubrique décrit la valeur de Registre ImmediateIdle qu’un pilote Windows peut utiliser pour accepter un état de mise hors tension immédiate, lorsque l’alimentation n’est plus nécessaire.
En plus des paramètres d’alimentation par défaut abordés dans Paramètres d’alimentation du Registre PortCls, Windows 8 introduit une valeur de Registre ImmediateIdle qui se trouve également dans la clé de Registre PowerSettings pour le pilote associé.
Ce fichier inf montre comment définir ImmediateIdle.
[MyAudioDevice.AddReg]
HKR,PowerSettings,ImmediateIdle,%REG_BINARY%, 0x00, 0x00, 0x00, 0x00
ImmediateIdle a un type de données REG_DWORD et sa valeur par défaut est « 0 », ce qui équivaut à FALSE. Dans le fragment de syntaxe précédent, la valeur hexadécimale « 0 » signifie que l’appareil ne s’éteigne pas immédiatement lorsque l’alimentation n’est plus nécessaire.
Pour que votre pilote opte pour un état de mise hors tension immédiate, lorsque l’alimentation n’est plus nécessaire, vous devez utiliser la syntaxe suivante :
[MyAudioDevice.AddReg]
HKR,PowerSettings,ImmediateIdle,%REG_BINARY%, 0x01, 0x00, 0x00, 0x00
Dans l’exemple précédent, la valeur hexadécimal « 1 » équivaut à TRUE, ce qui signifie que l’appareil s’éteigne immédiatement lorsque l’alimentation n’est plus nécessaire.
Lorsque l’infrastructure de gestion de l’alimentation du runtime appelle un rappel pour la méthode DevicePowerRequired , indiquant que l’appareil n’a plus besoin d’alimentation, PortCls demande ensuite un IRP d’alimentation de l’appareil pour l’état D-State indiqué par la valeur de Registre IdlePowerState . Si aucun état n’est fourni, la valeur par défaut D3 est utilisée.
Si un pilote opte pour la gestion immédiate de l’alimentation inactive, il doit s’assurer que le plug-in de moteur d’alimentation (PEP) du système contient la logique nécessaire pour empêcher inutilement et continuellement l’alimentation de l’adaptateur vers le haut et vers le bas pour les irps reçus successivement. Certaines règles de résidence doivent être appliquées afin de maintenir la mise sous tension de l’appareil pour les lots de demandes d’E/S.
En outre, l’interface introduite dans Windows 7, qui permet aux pilotes d’activer ou de désactiver par programmation la gestion de l’alimentation inactive, continue d’être respectée lorsque le pilote n’a pas choisi la gestion de l’alimentation inactive immédiate. Cela s’effectue via la méthode IPortClsPower::SetIdlePowerManagement et remplace les paramètres dans le Registre, sauf dans le cas où ImmediateIdle est défini sur 1 (TRUE).