Fungsi PoSetPowerState (wdm.h)

PoSetPowerState rutin memberi tahu sistem perubahan status daya perangkat untuk perangkat.

Sintaks

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

Parameter

[in] DeviceObject

Penunjuk ke DEVICE_OBJECT target.

[in] Type

Menunjukkan nilai POWER_STATE_TYPE . Driver harus menentukan DevicePowerState.

[in] State

Menentukan status daya yang akan diatur. Driver harus menentukan nilai DEVICE_POWER_STATE .

Nilai kembali

Pada Windows 2000 dan versi yang lebih baru dari sistem operasi, PoSetPowerState mengembalikan status daya sebelumnya. Pada Windows 98/Me, PoSetPowerState mengembalikan status yang diteruskan dalam Status.

Keterangan

PoSetPowerState memberi tahu manajer daya status daya baru untuk perangkat. Setiap driver dalam tumpukan perangkat (filter, fungsi, dan driver bus) harus memanggil PoSetPowerState untuk memberi tahu manajer daya tentang perubahan status daya objek perangkat yang sesuai. Contohnya:

  • Driver memanggil rutinitas ini setelah menerima permintaan set-power perangkat dan sebelum memanggil PoStartNextPowerIrp. Saat menangani permintaan PnP IRP_MN_START_DEVICE , driver harus memanggil PoSetPowerState untuk memberi tahu manajer daya bahwa perangkat berada dalam status D0.
  • Jika perangkat mati, driver harus memanggil PoSetPowerState sebelum meninggalkan status D0. Selain itu, driver harus dapat memproses permintaan klien sebelum PoSetPowerState kembali.
  • Jika perangkat menyala, driver harus memanggil PoSetPowerState setelah perangkat berhasil dimasukkan ke dalam status D0.
Untuk informasi selengkapnya tentang menggerakkan perangkat ke atas dan ke bawah, lihat Menangani IRP_MN_SET_POWER untuk Status Daya Perangkat.

Pemanggil PoSetPowerState harus berjalan di IRQL <= APC_LEVEL kecuali saat mengatur status ke D0. Saat mengatur status ke D0, penelepon dapat berjalan di IRQL <= DISPATCH_LEVEL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Lihat bagian Keterangan.

Lihat juga

IRP_MN_START_DEVICE

PoStartNextPowerIrp