Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Bangun mendadak adalah transisi tak terduga ke D0. Setelah perangkat memasuki D3cold, perangkat dapat terbangun secara tiba-tiba sebagai efek samping ketika driver untuk perangkat lain pada jalur daya yang sama meminta transisi dari D3cold ke D0. Driver untuk perangkat pertama harus menerima pemberitahuan bangun mendadak untuk mencegah perangkat tetap dalam status D0 yang tidak diinisialisasi.
Ketika perangkat berpindah dari D3hot ke D3cold, perangkat mungkin melakukannya karena sumber daya yang dibagikannya dengan beberapa perangkat lain dimatikan. Beberapa saat setelah perangkat ini memasuki D3cold, driver untuk salah satu perangkat mungkin meminta transisi ke D0. Menanggapi permintaan ini, driver bus induk atau driver filter ACPI menyalakan sumber daya, dan semua perangkat yang berbagi sumber daya memasuki keadaan perangkat keras menyala secara default.
Satu-satunya driver perangkat yang mengharapkan perubahan status daya ini adalah driver yang meminta perubahan. Driver untuk perangkat lain harus menerima pemberitahuan tentang perubahan ini sehingga mereka dapat menginisialisasi perangkat mereka dengan benar untuk beroperasi di D0. Hanya driver yang dapat menerima pemberitahuan ini yang akan memungkinkan perangkatnya untuk memasukkan D3cold. Jika tidak, driver tidak akan tahu kapan perangkat memasuki D0.
Saat perangkat diaktifkan, perangkat memasuki status perangkat keras default yang tidak diinisialisasi. Misalnya, Spesifikasi PCI Express Base 3.0 mendefinisikan status D0 yang tidak diinisialisasi yang dimasukkan perangkat saat pertama kali menerima daya. Definisi status ini khusus untuk perangkat PCI dan PCI Express, tetapi perangkat yang terhubung ke bus lain dirancang untuk memasuki status perangkat keras serupa ketika diaktifkan.
Dalam kasus perangkat PCI atau PCI Express yang mengimplementasikan beberapa fungsi, fungsi perangkat ini mungkin berbagi rel daya yang sama. Namun, setiap fungsi mungkin memiliki driver terpisah dan driver untuk fungsi-fungsi ini tidak mungkin berkomunikasi langsung satu sama lain. Ketika driver untuk salah satu fungsi ini meminta perubahan status daya dari D3cold ke D0, driver untuk fungsi lain tidak mengharapkan perubahan ini. Ketika fungsi lain ini menerima daya, driver mereka harus diberi tahu sehingga mereka dapat mengonfigurasi fungsi untuk beroperasi dengan benar di D0.
Pengemudi bus mendeteksi ketika daya ke perangkat anak-anak diaktifkan. Jika driver fungsi perangkat ini tidak meminta transisi ke D0, driver bus meminta driver perangkat untuk mengirim sendiri D0 power IRP (permintaan IRP_MN_SET_POWER dengan status target = PowerDeviceD0) untuk menginisialisasi perangkat untuk beroperasi di D0. Dari status D0 yang diinisialisasi ini, driver perangkat kemudian dapat memulai transisi perangkat ke D3hot. Driver perangkat dapat menerima pemberitahuan transisi mendadak ke D0 dari driver bus dengan cara berikut:
- Driver perangkat yang secara langsung atau tidak langsung mendaftarkan diri mereka sebagai klien kerangka kerja manajemen daya run-time (PoFx) menerima panggilan balik pemberitahuan.
- Driver untuk perangkat yang mempersenjatai perangkat mereka untuk bangun memiliki permintaan IRP_MN_WAIT_WAKE tertunda yang diselesaikan oleh pengemudi bus.
Dimulai dengan Windows 8, driver fungsi perangkat, yang bertindak sebagai pemilik kebijakan daya, dapat mendaftarkan dirinya sebagai klien PoFx. Ketika driver bus memberi tahu PoFx bahwa perangkat mengalami transisi mendadak ke D0, PoFx membantu perangkat untuk pindah ke status D0 yang diinisialisasi, dan kemudian ke D3hot. Pertama, PoFx memanggil rutinitas DevicePowerRequiredCallback driver untuk meminta driver perangkat mengirim IRP daya D0 ke tumpukan perangkat. Selanjutnya, PoFx memanggil rutinitas DevicePowerNotRequiredCallback driver untuk memberi tahu driver perangkat bahwa perangkat tidak diperlukan untuk tetap dalam status D0.
Dimulai dengan Kernel-Mode Driver Framework (KMDF) versi 1.11, driver KMDF untuk perangkat komponen tunggal secara tidak langsung dapat mendaftarkan dirinya dengan PoFx dengan memanggil metode WdfDeviceWdmAssignPowerFrameworkSettings . Dalam panggilan ini, driver menyediakan pointer untuk rutin panggilan balik yang memberi tahu driver tentang transisi tak terduga ke D0. Untuk informasi lebih lanjut, lihat Dukungan Status Daya Fungsional.
Pengandar yang tidak mendaftarkan perangkatnya dengan PoFx masih dapat diberikan pemberitahuan tentang perubahan mendadak ke D0 jika perangkat tersebut disiapkan untuk membangunkan. Ketika driver bus menyalakan daya ke perangkat, mereka menyelesaikan permintaan IRP_MN_WAIT_WAKE driver. Sebagai respons, driver menginisialisasi perangkatnya untuk beroperasi di D0. Perangkat kemungkinan tidak aktif, dalam hal ini driver, setelah beberapa waktu, akan memindahkan perangkat ini ke D3hot.
Driver fungsi yang tidak mendaftar ke PoFx dan yang tidak mengatur perangkatnya untuk bangkit tidak menerima pemberitahuan tentang transisi mendadak dari D3cold ke D0. Perangkat mungkin menghabiskan banyak waktu dalam keadaan D0 yang tidak diinisialisasi. Dalam keadaan ini, semua komponen dalam perangkat biasanya diaktifkan. Untuk mengurangi konsumsi daya oleh perangkat yang tidak aktif, driver harus mengaktifkan masuk ke mode D3cold hanya jika mereka dapat menerima pemberitahuan tentang transisi mendadak ke D0.