Funzione PoSetPowerState (ntifs.h)
La routine PoSetPowerState notifica al sistema una modifica dello stato di alimentazione del dispositivo per un dispositivo.
Sintassi
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
Parametri
[in] DeviceObject
Puntatore al DEVICE_OBJECT di destinazione.
[in] Type
Indica un valore POWER_STATE_TYPE . I driver devono specificare DevicePowerState.
[in] State
Specifica lo stato di alimentazione da impostare. I driver devono specificare un valore DEVICE_POWER_STATE .
Valore restituito
PoSetPowerState restituisce lo stato di alimentazione precedente.
Commenti
PoSetPowerState invia una notifica al risparmio energia del nuovo stato di alimentazione per un dispositivo. Ogni driver in uno stack di dispositivi (filtro, funzione e driver del bus) deve chiamare PoSetPowerState per informare il risparmio energia di una modifica dello stato di alimentazione dell'oggetto dispositivo corrispondente. Ad esempio:
Un driver chiama questa routine dopo aver ricevuto una richiesta di alimentazione del set di dispositivi e prima di chiamare PoStartNextPowerIrp. Quando si gestisce una richiesta di IRP_MN_START_DEVICE PnP, il driver deve chiamare PoSetPowerState per notificare al risparmio energia che il dispositivo si trova nello stato D0.
Se il dispositivo viene spento, il driver deve chiamare PoSetPowerState prima di lasciare lo stato D0. Inoltre, il driver deve essere in grado di elaborare le richieste client prima che PoSetPowerState restituisca.
Se il dispositivo è attivo, il driver deve chiamare PoSetPowerState dopo che il dispositivo viene inserito correttamente nello stato D0.
Per altre informazioni sull'alimentazione di un dispositivo verso l'alto e verso il basso, vedere Gestione dei IRP_MN_SET_POWER per gli stati di alimentazione dei dispositivi.
I chiamanti di PoSetPowerState devono essere in esecuzione in IRQL <= APC_LEVEL tranne quando si imposta lo stato su D0. Quando si imposta lo stato su D0, i chiamanti possono essere in esecuzione in IRQL <= DISPATCH_LEVEL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Vedere la sezione Osservazioni. |