Función PoSetDeviceBusyEx (ntifs.h)
La rutina PoSetDeviceBusyEx notifica al administrador de energía que el dispositivo asociado al contador inactivo 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 devuelto previamente por la rutina PoRegisterDeviceForIdleDetection . Dado que PoRegisterDeviceForIdleDetection podría devolver un puntero NULL, el autor de la llamada debe comprobar que el puntero no es NULL antes de llamar a PoSetDeviceBusyEx.
Valor devuelto
None
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 a las rutinas PoSetDeviceBusyEx y PoRegisterDeviceForIdleDetection 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 para 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 inactivo. Para las operaciones más largas que pueden superar este período, use las rutinas PoStartDeviceBusy y PoEndDeviceBusy en su lugar.
Un controlador que realiza varias solicitudes para operaciones breves de E/S debe llamar a PoSetDeviceBusyEx para cada solicitud de E/S que realice.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista con SP1 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluye Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | Cualquier nivel |