Perangkat Memasuki Status Low-Power
Perangkat meninggalkan status berfungsi (D0) dan memasuki status daya rendah jika salah satu hal berikut ini terjadi:
Perangkat menganggur (yaitu, tidak diakses) dan mampu memasukkan status diam berdaya rendah sementara sistem tetap dalam status berfungsi (S0).
Status daya sistem telah berubah dari status kerja (S0) menjadi status daya rendah. (Driver dapat memanggil WdfDeviceGetSystemPowerAction untuk menentukan alasan bahwa status daya sistem berubah.)
Untuk setiap fungsi dan driver filter yang mendukung perangkat, kerangka kerja melakukan hal berikut, secara berurutan, satu driver pada satu waktu, dimulai dengan driver yang tertinggi dalam tumpukan driver:
Jika driver menggunakan I/O yang dikelola sendiri, kerangka kerja memanggil fungsi panggilan balik EvtDeviceSelfManagedIoSuspend driver.
Kerangka kerja menghentikan semua antrean I/O yang dikelola daya driver dan memanggil fungsi panggilan balik EvtIoStop mereka (jika ada).
Jika driver adalah pemilik kebijakan daya perangkat, kerangka kerja memanggil fungsi panggilan balik EvtDeviceArmWakeFromS0, EvtDeviceArmWakeFromSx, atau EvtDeviceArmWakeFromSxWithReason .
Jika perangkat keras dan driver mendukung DMA, kerangka kerja memanggil fungsi panggilan balik EvtDmaEnablerSelfManagedIoStop, EvtDmaEnablerFlush, dan EvtDmaEnablerDisable driver (jika ada) untuk setiap saluran DMA yang dibuat.
Kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0ExitPreInterruptsDisabled driver (jika ada), dan kemudian memanggil fungsi panggilan balik EvtInterruptDisable driver (jika ada) untuk setiap gangguan, sehingga driver dapat menonaktifkan gangguan perangkat.
Kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Exit driver (jika ada).
Sopir bus adalah sopir di tumpukan yang disebut terakhir. Ketika kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Exit driver bus, fungsi panggilan balik mengatur status daya perangkat (perangkat anak bus) ke status daya rendah. Kerangka kerja menentukan status daya rendah D3 kecuali pemilik kebijakan daya telah menentukan status daya rendah yang berbeda.
Catatan
Metode yang digunakan oleh driver bus untuk mengatur status daya perangkat anak khusus bus. Misalnya, spesifikasi manajemen daya bus PCI mendefinisikan Power Management Control / Status register (PMCSR) 16-bit. Dua bit terendah ("PowerState") menentukan status daya perangkat saat ini dan digunakan untuk mengatur perangkat ke status daya baru. pci.sys
Ketika PDO menerima IRP_MN_SET_POWER/D3, PDO membaca PMCSR, mengubah bit PowerState menjadi 11b (tingkat daya D3), dan menulis kembali PMCSR.