Função PoFxSetDeviceIdleTimeout (wdm.h)
A rotina PoFxSetDeviceIdleTimeout especifica o intervalo de tempo mínimo de quando o último componente do dispositivo entra na condição ociosa para quando a PoFx (estrutura de gerenciamento de energia) chama a rotina DevicePowerNotRequiredCallback do driver.
Sintaxe
void PoFxSetDeviceIdleTimeout(
[in] POHANDLE Handle,
[in] ULONGLONG IdleTimeout
);
Parâmetros
[in] Handle
Um identificador que representa o registro do dispositivo com PoFx. O driver do dispositivo recebeu esse identificador anteriormente da rotina PoFxRegisterDevice .
[in] IdleTimeout
O intervalo de tempo limite ocioso em unidades de 100 nanossegundos. Para obter mais informações, consulte Comentários.
Retornar valor
Nenhum
Comentários
Essa rotina especifica um intervalo de tempo limite para poFx se aplicar a chamadas futuras para a rotina de retorno de chamada DevicePowerNotRequiredCallback do driver. Por padrão, esse intervalo de tempo limite é zero, nesse caso, PoFx pode chamar a rotina DevicePowerNotRequiredCallback assim que o dispositivo estiver pronto para mudar para um estado Dx de baixa potência. No entanto, um driver pode preferir atrasar essa transição e manter o dispositivo no estado de energia D0 por algum intervalo de tempo limite adicional. Nesse caso, se o dispositivo se tornar ativo antes do final do intervalo de tempo limite e, portanto, for necessário permanecer no estado D0, a chamada devicePowerNotRequiredCallback pendente não será mais necessária e será cancelada pela PoFx.
Por exemplo, para melhorar o desempenho e reduzir o desgaste, um driver de dispositivo de armazenamento pode querer impedir que uma unidade giratória entre em D3 e diminua a velocidade até que a unidade fique ociosa por um tempo suficientemente longo. Para simplificar a implementação desse driver da rotina de retorno de chamada DevicePowerNotRequiredCallback , a rotina PoFxSetDeviceIdleTimeout permite que o driver atrase automaticamente a transição D3 sem exigir que o driver configure um temporizador.
O intervalo de tempo limite começa quando todos os componentes do dispositivo completam suas transições para a condição ociosa. Normalmente, o PoFx aguarda até o final do intervalo de tempo limite para chamar a rotina DevicePowerNotRequiredCallback . No entanto, se PoFx estiver se preparando para entrar em um estado de sistema de baixa potência, PoFx poderá encerrar o intervalo de tempo limite mais cedo. De qualquer forma, quando PoFx chama a rotina DevicePowerNotRequiredCallback do driver, o driver deve alternar para o estado Dx de baixa potência sem mais atrasos.
O driver do dispositivo pode chamar PoFxSetDeviceIdleTimeout sempre que uma alteração nas condições exigir uma alteração no intervalo de tempo limite ocioso. Após cada chamada, o novo intervalo de tempo limite ocioso permanece em vigor até que o driver chame PoFxSetDeviceIdleTimeout novamente para atualizá-lo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 8. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h |
Biblioteca | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |