Fungsi PoSetPowerState (ntifs.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
PoSetPowerState mengembalikan status daya sebelumnya.
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 | Windows 2000 |
Target Platform | Universal |
Header | ntifs.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Lihat bagian Keterangan. |