Fonction PoFxSetDeviceIdleTimeout (wdm.h)

La routine PoFxSetDeviceIdleTimeout spécifie l’intervalle de temps minimal entre le moment où le dernier composant de l’appareil entre dans la condition d’inactivité et le moment où l’infrastructure de gestion de l’alimentation (PoFx) appelle la routine DevicePowerNotRequiredCallback du pilote.

Syntaxe

void PoFxSetDeviceIdleTimeout(
  [in] POHANDLE  Handle,
  [in] ULONGLONG IdleTimeout
);

Paramètres

[in] Handle

Handle qui représente l’inscription de l’appareil auprès de PoFx. Le pilote de périphérique a déjà reçu ce handle de la routine PoFxRegisterDevice .

[in] IdleTimeout

Intervalle de délai d’inactivité en unités de 100 nanosecondes. Pour plus d'informations, consultez la section Notes.

Valeur de retour

None

Remarques

Cette routine spécifie un intervalle de délai d’attente pour Que PoFx s’applique aux appels futurs à la routine de rappel DevicePowerNotRequiredCallback du pilote. Par défaut, cet intervalle de délai d’attente est égal à zéro, auquel cas PoFx peut appeler la routine DevicePowerNotRequiredCallback dès que l’appareil est prêt à passer à un état Dx faible consommation. Toutefois, un pilote peut préférer retarder cette transition et maintenir l’appareil dans l’état d’alimentation D0 pendant un intervalle de délai d’attente supplémentaire. Dans ce cas, si l’appareil devient actif avant la fin de l’intervalle de délai d’attente et qu’il doit donc rester à l’état D0, l’appel DevicePowerNotRequiredCallback en attente n’est plus obligatoire et est annulé par PoFx.

Par exemple, pour améliorer les performances et réduire l’usure, un pilote de périphérique de stockage peut vouloir empêcher un lecteur tournant d’entrer dans D3 et de ralentir jusqu’à ce que le lecteur soit inactif pendant suffisamment longtemps. Pour simplifier l’implémentation par ce pilote de la routine de rappel DevicePowerNotRequiredCallback , la routine PoFxSetDeviceIdleTimeout permet au pilote de retarder automatiquement la transition D3 sans nécessiter que le pilote configure un minuteur.

L’intervalle de délai d’attente commence lorsque tous les composants de l’appareil terminent leur transition vers la condition d’inactivité. En règle générale, PoFx attend la fin de l’intervalle de délai d’attente pour appeler la routine DevicePowerNotRequiredCallback . Toutefois, si PoFx se prépare à entrer dans un état de système à faible consommation d’énergie, PoFx peut mettre fin à l’intervalle de délai d’attente tôt. Dans tous les cas, lorsque PoFx appelle la routine DevicePowerNotRequiredCallback du pilote, le pilote doit passer à l’état Dx à faible consommation sans plus de délai.

Le pilote de périphérique peut appeler PoFxSetDeviceIdleTimeout chaque fois qu’une modification des conditions nécessite une modification de l’intervalle de délai d’inactivité. Après chaque appel, le nouvel intervalle de délai d’inactivité reste en vigueur jusqu’à ce que le pilote appelle à nouveau PoFxSetDeviceIdleTimeout pour le mettre à jour.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête wdm.h
Bibliothèque Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Voir aussi

DevicePowerNotRequiredCallback

PoFxRegisterDevice