Partager via


Fonction PoSetDeviceBusyEx (ntifs.h)

La routine PoSetDeviceBusyEx informe le gestionnaire d’alimentation que l’appareil associé au compteur d’inactivité spécifié est occupé.

Syntaxe

void PoSetDeviceBusyEx(
  [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 n’est pas NULL avant d’appeler PoSetDeviceBusyEx.

Valeur de retour

None

Remarques

Cette routine remplace directement la macro PoSetDeviceBusy . Si vous écrivez un nouveau code de pilote pour Windows Vista avec Service Pack 1 (SP1) et versions ultérieures de Windows, appelez PoSetDeviceBusyEx au lieu de PoSetDeviceBusy.

Un pilote appelle les routines PoSetDeviceBusyEx et PoRegisterDeviceForIdleDetection pour activer la détection d’inactivité du système pour son appareil. Si un appareil inscrit pour la détection d’inactivité reste inactif pendant le délai d’attente spécifié par le pilote, le gestionnaire d’alimentation envoie une demande de IRP_MN_SET_POWER pour placer l’appareil dans un état de veille demandé.

PoSetDeviceBusyEx signale que l’appareil est occupé, afin que le gestionnaire d’alimentation puisse redémarrer son compte à rebours inactif. Si l’appareil est dans un état de veille, PoSetDeviceBusyEx ne modifie pas l’état de l’appareil. Autrement dit, le système n’envoie pas de demande de IRP_MN_SET_POWER pour réveiller l’appareil.

PoSetDeviceBusyEx est conçu pour être utilisé avec des opérations d’E/S relativement brèves par rapport au délai d’attente du compteur inactif. Pour les opérations plus longues qui peuvent dépasser cette période, utilisez les routines PoStartDeviceBusy et PoEndDeviceBusy à la place.

Un pilote qui effectue plusieurs requêtes pour de brèves opérations d’E/S doit appeler PoSetDeviceBusyEx pour chaque demande d’E/S qu’il effectue.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista avec SP1
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

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy