Mengatur Bendera Objek Perangkat untuk Power Management
Dalam rutinitas AddDevice-nya , setiap driver membuat objek perangkat (objek perangkat filter (DO), objek perangkat fungsi (FDO), atau objek perangkat fisik (PDO)) dan mengatur bendera DO_XXX di objek perangkat untuk menjelaskan atribut perangkat dan konfigurasi driver. Bendera objek perangkat berikut berkaitan dengan manajemen daya.
Bendera | Deskripsi |
---|---|
DO_POWER_INRUSH | Menunjukkan bahwa saat ini yang digambar oleh perangkat melonjak saat perangkat pertama kali dinyalakan. Lonjakan atau "inrush" ini berlangsung untuk waktu yang singkat, setelah itu arus yang ditarik oleh perangkat jatuh ke tingkat operasi yang lebih rendah. |
DO_POWER_PAGABLE | Menunjukkan bahwa driver dapat di-pageable. Dimulai dengan Windows 2000, driver yang dapat di-paged harus mengatur bendera DO_POWER_PAGABLE. Manajer daya memanggil driver tersebut di IRQL = PASSIVE_LEVEL. Untuk informasi selengkapnya tentang driver yang dapat di-pageable, lihat Membuat Driver Dapat Di-Pageable. |
Bendera objek perangkat biasanya diatur oleh driver bus saat membuat PDO untuk perangkat. Namun, beberapa driver fungsi mungkin perlu mengubah nilai bendera ini sebagai bagian dari rutinitas AddDevice mereka. Dimulai dengan Windows Vista, sistem operasi tidak mengharuskan semua objek perangkat dalam tumpukan perangkat memiliki bendera terkait daya yang sama. Namun, di Windows Server 2003, Windows XP, dan Windows 2000, semua objek perangkat dalam tumpukan perangkat harus memiliki bendera terkait daya yang sama yang ditetapkan.
Dimulai dengan Windows 2000, driver perangkat yang berada di jalur halaman tidak boleh mengatur bendera DO_POWER_PAGABLE. Driver berada di "jalur halaman" jika berpartisipasi dalam operasi I/O pada file halaman. Driver yang tidak mengatur bendera ini harus dapat dipanggil di IRQL = DISPATCH_LEVEL. Untuk informasi selengkapnya, lihat Batasan pada Rutinitas Pengiriman.
Secara umum, pengemudi tidak boleh mengubah nilai pengemudi bus untuk bendera DO_POWER_PAGABLE, dan pengemudi tidak boleh mengatur bendera ini jika pengemudi tingkat bawah telah membersihkannya. Saat menangani transisi yang melibatkan permintaan paging PnP (biasanya sebagai respons terhadap IRP_MJ_PNP dengan permintaan IRP_MN_DEVICE_USAGE_NOTIFICATION ), driver penyimpanan harus mengurutkan pengaturan dan penghapusan bendera dengan hati-hati.
Driver untuk perangkat yang memerlukan inrush daya saat start-up harus mengatur bendera DO_POWER_INRUSH di objek perangkat sebelum menghapus bendera DO_DEVICE_INITIALIZING. Hanya satu driver di tumpukan perangkat, biasanya driver bus (PDO), yang perlu mengatur bendera DO_POWER_INRUSH untuk perangkat. Bendera memberi tahu manajer daya bahwa perangkat tersebut harus dinyalakan satu per satu, secara berurutan dengan perangkat lain seperti itu, untuk menghindari kelebihan beban catu daya. Manajer daya memastikan bahwa hanya satu IRP inrush daya yang aktif di mana saja dalam sistem pada waktu tertentu.
Dimulai dengan Windows Vista, driver dapat mengatur bendera DO_POWER_PAGABLE dan bendera DO_POWER_INRUSH. Di Windows Server 2003, Windows XP, dan Windows 2000, driver tidak dapat mengatur bendera DO_POWER_PAGABLE dan bendera DO_POWER_INRUSH.