Partager via


Fonction PoSetDeviceBusyEx (ntifs.h)

La routine PoSetDeviceBusyEx avertit 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 qui a été retournée précédemment 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

Aucun

Remarques

Cette routine est un remplacement direct de la macro PoSetDeviceBusy. Si vous écrivez du 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 inactive reste inactif pendant la période d’attente spécifiée par le pilote, power Manager 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, il n’entraîne pas l’envoi d’une demande de IRP_MN_SET_POWER pour réveiller l’appareil.

PoSetDeviceBusyEx est conçu pour une utilisation avec des opérations d’E/S relativement brèves par rapport à la période d’attente du compteur inactif. Pour des opérations plus longues qui peuvent dépasser cette période, utilisez les routinespoStartDeviceBusyet PoEndDeviceBusy à la place.

Un pilote qui effectue plusieurs demandes d’opérations d’E/S brèves doit appeler PoSetDeviceBusyEx pour chaque demande d’E/S effectuée.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista avec SP1
plateforme cible Universel
d’en-tête ntifs.h (include 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