Condividi tramite


Funzione PoSetPowerState (wdm.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 alla 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

In Windows 2000 e versioni successive del sistema operativo, PoSetPowerState restituisce lo stato di alimentazione precedente. In Windows 98/ Me PoSetPowerState restituisce lo stato passato in Stato.

Commenti

PoSetPowerStatenotifica al gestore 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 power manager di una modifica dello stato di alimentazione del relativo 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 gestore energia che il dispositivo si trova nello stato D0.
  • Se il dispositivo è inattivo, 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 è in alimentazione, il driver deve chiamare PoSetPowerState dopo che il dispositivo viene inserito correttamente nello stato D0.
Per altre informazioni sull'alimentazione di un dispositivo su e giù, vedere Gestione delle IRP_MN_SET_POWER per Gli stati di alimentazione del dispositivo.

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 Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.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