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

Confira também

DevicePowerNotRequiredCallback

PoFxRegisterDevice