Función PoFxSetDeviceIdleTimeout (wdm.h)
La rutina PoFxSetDeviceIdleTimeout especifica el intervalo de tiempo mínimo desde el momento en que el último componente del dispositivo entra en la condición de inactividad a cuando el marco de administración de energía (PoFx) llama a la rutina DevicePowerNotRequiredCallback del controlador.
Sintaxis
void PoFxSetDeviceIdleTimeout(
[in] POHANDLE Handle,
[in] ULONGLONG IdleTimeout
);
Parámetros
[in] Handle
Identificador que representa el registro del dispositivo con PoFx. El controlador de dispositivo recibió anteriormente este identificador de la rutina PoFxRegisterDevice .
[in] IdleTimeout
Intervalo de tiempo de espera de inactividad en unidades de 100 nanosegundos. Para obtener más información, vea la sección Comentarios.
Valor devuelto
None
Observaciones
Esta rutina especifica un intervalo de tiempo de espera para que PoFx se aplique a futuras llamadas a la rutina de devolución de llamada DevicePowerNotRequiredCallback del controlador. De forma predeterminada, este intervalo de tiempo de espera es cero, en cuyo caso PoFx podría llamar a la rutina DevicePowerNotRequiredCallback tan pronto como el dispositivo esté listo para cambiar a un estado Dx de bajo consumo. Sin embargo, un controlador podría preferir retrasar esta transición y mantener el dispositivo en el estado de alimentación D0 durante un intervalo de tiempo de espera adicional. En este caso, si el dispositivo se activa antes del final del intervalo de tiempo de espera y, por lo tanto, es necesario permanecer en el estado D0, la llamada a DevicePowerNotRequiredCallback pendiente ya no es necesaria y la cancela PoFx.
Por ejemplo, para mejorar el rendimiento y reducir el desgaste, es posible que un controlador de dispositivo de almacenamiento quiera impedir que una unidad giratoria entre D3 y se ralentice hasta que la unidad esté inactiva durante un tiempo suficientemente largo. Para simplificar la implementación de este controlador de la rutina de devolución de llamada DevicePowerNotRequiredCallback , la rutina PoFxSetDeviceIdleTimeout permite al controlador retrasar automáticamente la transición D3 sin necesidad de que el controlador configure un temporizador.
El intervalo de tiempo de espera se inicia cuando todos los componentes del dispositivo completan sus transiciones a la condición de inactividad. Normalmente, PoFx espera hasta el final del intervalo de tiempo de espera para llamar a la rutina DevicePowerNotRequiredCallback . Sin embargo, si PoFx se prepara para entrar en un estado de sistema de bajo consumo, PoFx podría terminar el intervalo de tiempo de espera temprano. En cualquier caso, cuando PoFx llama a la rutina DevicePowerNotRequiredCallback del controlador, el controlador debe cambiar al estado Dx de baja potencia sin ningún retraso adicional.
El controlador de dispositivo puede llamar a PoFxSetDeviceIdleTimeout cada vez que un cambio en las condiciones requiere un cambio en el intervalo de tiempo de espera de inactividad. Después de cada llamada, el nuevo intervalo de tiempo de espera de inactividad permanece en vigor hasta que el controlador llama a PoFxSetDeviceIdleTimeout de nuevo para actualizarlo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 8. |
Plataforma de destino | Universal |
Encabezado | wdm.h |
Library | Ntoskrnl.lib |
Archivo DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |