Función PoSetDeviceBusyEx (wdm.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 está escribiendo código de controlador nuevo 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 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 PoStartDeviceBusy 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 Value
Cliente mínimo compatible Disponible a partir de Windows Vista con SP1.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel

Consulte también

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy