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 |