Condividi tramite


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

Vedi anche

DevicePowerNotRequiredCallback

PoFxRegisterDevice