Funzione PoFxSetDeviceIdleTimeout (wdm.h)
La routine PoFxSetDeviceIdleTimeout specifica l'intervallo di tempo minimo da quando l'ultimo componente del dispositivo entra nella condizione di inattività a quando il framework di risparmio energia (PoFx) chiama la routine DevicePowerNotRequiredCallback del driver.
Sintassi
void PoFxSetDeviceIdleTimeout(
[in] POHANDLE Handle,
[in] ULONGLONG IdleTimeout
);
Parametri
[in] Handle
Handle che rappresenta la registrazione del dispositivo con PoFx. Il driver di dispositivo ha ricevuto in precedenza questo handle dalla routine PoFxRegisterDevice .
[in] IdleTimeout
Intervallo di timeout di inattività in unità di 100 nanosecondi. Per altre informazioni, vedere la sezione Osservazioni.
Valore restituito
nessuno
Osservazioni
Questa routine specifica un intervallo di timeout per PoFx da applicare alle chiamate future alla routine di callback DevicePowerNotRequiredCallback del driver. Per impostazione predefinita, questo intervallo di timeout è zero, nel qual caso PoFx potrebbe chiamare la routine DevicePowerNotRequiredCallback appena il dispositivo è pronto per passare a uno stato Dx a basso consumo. Tuttavia, un driver potrebbe preferire ritardare questa transizione e mantenere il dispositivo nello stato di alimentazione D0 per un intervallo di timeout aggiuntivo. In questo caso, se il dispositivo diventa attivo prima della fine dell'intervallo di timeout ed è quindi necessario rimanere nello stato D0, la chiamata DevicePowerNotRequiredCallback in sospeso non è più necessaria e viene annullata da PoFx.
Ad esempio, per migliorare le prestazioni e ridurre l'usura, un driver di dispositivo di archiviazione potrebbe voler impedire a un'unità rotante di entrare in D3 e rallentare fino a quando l'unità non è stata inattiva per un periodo di tempo sufficientemente lungo. Per semplificare l'implementazione di questo driver della routine di callback DevicePowerNotRequiredCallback , la routine PoFxSetDeviceIdleTimeout consente al driver di ritardare automaticamente la transizione D3 senza richiedere al driver di configurare un timer.
L'intervallo di timeout inizia quando tutti i componenti del dispositivo completano le transizioni alla condizione di inattività. In genere, PoFx attende fino alla fine dell'intervallo di timeout per chiamare la routine DevicePowerNotRequiredCallback . Tuttavia, se PoFx si prepara a entrare in uno stato del sistema a basso consumo, PoFx potrebbe terminare l'intervallo di timeout in anticipo. In ogni caso, quando PoFx chiama la routine DevicePowerNotRequiredCallback del driver, il driver deve passare allo stato Dx a basso consumo senza ulteriore ritardo.
Il driver di dispositivo può chiamare PoFxSetDeviceIdleTimeout ogni volta che una modifica nelle condizioni richiede una modifica nell'intervallo di timeout di inattività. Dopo ogni chiamata, il nuovo intervallo di timeout di inattività rimane attivo fino a quando il driver chiama di nuovo PoFxSetDeviceIdleTimeout per aggiornarlo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h |
Libreria | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |