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.

Vedi anche

IRP_MN_START_DEVICE

PoStartNextPowerIrp