Compartir a través de


Función PoSetDeviceBusyEx (ntifs.h)

La rutina PoSetDeviceBusyEx notifica al administrador de energía que el dispositivo asociado al contador de inactividad especificado está ocupado.

Sintaxis

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

Parámetros

[in, out] IdlePointer

Puntero a un contador inactivo. Se trata de un valor de puntero que devolvió previamente el PoRegisterDeviceForIdleDetection rutina. Dado que PoRegisterDeviceForIdleDetection podría devolver un puntero NULL, el llamador debe comprobar que el puntero no es NULL antes de llamar a PoSetDeviceBusyEx.

Valor devuelto

Ninguno

Observaciones

Esta rutina es un reemplazo directo de la macro PoSetDeviceBusy. Si va a escribir nuevo código de controlador para Windows Vista con Service Pack 1 (SP1) y versiones posteriores de Windows, llame a PoSetDeviceBusyEx en lugar de PoSetDeviceBusy.

Un controlador llama al PoSetDeviceBusyEx y PoRegisterDeviceForIdleDetection rutinas para habilitar la detección de inactividad del sistema para su dispositivo. Si un dispositivo registrado para la detección de inactividad permanece inactivo durante el período de tiempo de espera especificado por el controlador, el administrador de energía envía una solicitud de IRP_MN_SET_POWER para colocar el dispositivo en un estado de suspensión solicitado.

PoSetDeviceBusyEx informa de que el dispositivo está ocupado, de modo que el administrador de energía pueda reiniciar su cuenta atrás inactiva. Si el dispositivo está en estado de suspensión, PoSetDeviceBusyEx no cambia el estado del dispositivo. Es decir, no hace que el sistema envíe una solicitud de IRP_MN_SET_POWER despertar el dispositivo.

poSetDeviceBusyEx está diseñado para su uso con operaciones de E/S que son relativamente breves en comparación con el período de tiempo de espera del contador de inactividad. Para las operaciones más largas que pueden superar este período, use las rutinas dePoStartDeviceBusy y PoEndDeviceBusy en su lugar.

Un controlador que realiza varias solicitudes para operaciones de E/S breves debe llamar a PoSetDeviceBusyEx para cada solicitud de E/S que realice.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista con SP1
de la plataforma de destino de Universal
encabezado de ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy