Fonction PoStartDeviceBusy (ntifs.h)

La routine PoStartDeviceBusy marque le début d’une période pendant laquelle l’appareil est occupé.

Syntaxe

void PoStartDeviceBusy(
  [in, out] PULONG IdlePointer
);

Paramètres

[in, out] IdlePointer

Pointeur vers un compteur inactif. Il s’agit d’une valeur de pointeur précédemment retournée par la routine PoRegisterDeviceForIdleDetection . Étant donné que PoRegisterDeviceForIdleDetection peut retourner un pointeur NULL, l’appelant doit vérifier que le pointeur est non NULL avant d’appeler PoStartDeviceBusy.

Valeur de retour

None

Remarques

Les routines PoStartDeviceBusy et PoEndDeviceBusy marquent le début et la fin d’une période pendant laquelle un appareil est occupé. Chaque appel à PoStartDeviceBusy doit être suivi d’un appel correspondant à PoEndDeviceBusy.

Pour chaque appareil, le gestionnaire d’alimentation conserve le nombre d’appels PoStartDeviceBusy en cours pour lesquels il n’a pas encore reçu d’appel PoEndDeviceBusy correspondant. Un appel PoStartDeviceBusy incrémente le nombre de personnes occupées d’un. Un appel PoEndDeviceBusy décrémente le nombre de personnes occupées d’un. Un nombre d’occupations différent de zéro désactive le compteur inactif de l’appareil. Une fois que le nombre de personnes occupées atteint zéro, le gestionnaire d’alimentation réinitialise le compteur inactif au délai d’expiration et active le compteur.

Au lieu d’utiliser les routines PoStartDeviceBusy et PoEndDeviceBusy pour réinitialiser le compteur inactif, vous pouvez appeler la routine PoSetDeviceBusyEx (ou la macro PoSetDeviceBusy ). Pour désactiver le compteur inactif pendant une période d’activité prolongée, un pilote peut appeler la routine PoRegisterDeviceForIdleDetection pour désactiver et activer les notifications d’inactivité au début et à la fin de la période occupée. Toutefois, PoStartDeviceBusy et PoEndDeviceBusy sont généralement plus pratiques à utiliser à cet effet, et vous devez envisager d’utiliser ces routines dans le nouveau code que vous écrivez pour Windows 7 et les versions ultérieures de Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7
Plateforme cible Universal
En-tête ntifs.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy