Bagikan melalui


Mendukung Power-Down Menganggur di Driver UMDF

Peringatan

UMDF 2 adalah versi terbaru UMDF dan supersedes UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2.

Sampel UMDF 1 yang diarsipkan dapat ditemukan di Windows 11, versi 22H2 - Pembaruan Sampel Driver Mei 2022.

Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.

Beberapa perangkat dapat memasuki status tidur sementara sistem tetap dalam keadaan kerjanya. Untuk perangkat tersebut, kerangka kerja memulai menurunkan daya perangkat setelah perangkat diam (tidak digunakan) untuk jumlah waktu yang telah ditentukan (dan dapat ditetapkan).

Beberapa perangkat ini juga dapat memicu sinyal bangun di bus saat mendeteksi peristiwa eksternal. Driver bus merespons sinyal ini, dan tumpukan driver memulihkan perangkat ke keadaan kerjanya. (Perangkat yang tidak mendeteksi peristiwa eksternal tetap dalam status daya rendah sampai kerangka kerja meminta driver bus untuk memulai pemulihan perangkat ke status kerjanya.)

Jika perangkat Anda dapat dimatikan saat diam, pemilik kebijakan daya harus melakukan dua langkah berikut:

  1. Panggil IWDFDevice2::AssignS0IdleSettings atau IWDFDevice3::AssignS0IdleSettingsEx untuk menentukan:

    • Status daya rendah yang akan dimasukkan perangkat
    • Jumlah waktu perangkat harus tetap menganggur sebelum status dayanya diturunkan
    • Apakah perangkat dapat mendeteksi peristiwa eksternal dan memicu sinyal bangun di bus
    • Apakah pengguna dapat mengontrol pengaturan diam perangkat
    • Apakah kerangka kerja dapat menempatkan perangkat dalam status daya D3cold saat periode batas waktu menganggur kedaluwarsa

    Jika driver Anda dibangun dengan kerangka kerja versi 1.11 atau yang lebih baru, Anda dapat memanggil IWDFDevice3::AssignS0IdleSettingsEx alih-alih IWDFDevice2::AssignS0IdleSettings. Selain fungsionalitas di atas, IWDFDevice3::AssignS0IdleSettingsEx memungkinkan driver untuk menentukan:

    • Apakah kemampuan daya mati diam perangkat diaktifkan atau dinonaktifkan
    • Apakah perangkat akan kembali ke status berfungsi (D0) ketika sistem kembali ke status kerjanya (S0)
  2. Terapkan antarmuka IPowerPolicyCallbackWakeFromS0 dan fungsi panggilan balik peristiwa berikut, jika Anda membutuhkannya untuk perangkat Anda:

Kerangka kerja menganggap perangkat menganggur, dan mulai menghitung waktu diam, ketika semua kondisi berikut terpenuhi:

  • Tidak ada antrean yang dikelola daya yang dibuat untuk instans perangkat ini memiliki permintaan apa pun yang menunggu dalam antrean atau dikirim ke driver. Jika permintaan dikirim ke driver dan driver mengirimkannya ke target I/O, permintaan masih terkait dengan antrean dan perangkat tidak akan dianggap menganggur. Permintaan dalam antrean yang tidak dikelola daya tidak dihitung terhadap perangkat diam.
  • Jika driver sebelumnya disebut IWDFDevice2::StopIdle, driver kemudian disebut IWDFDevice2::ResumeIdle.
  • Jika pemilik kebijakan daya adalah sopir bus, tidak ada perangkat anak dari sopir bus yang berada di D0.

Jika driver Anda (atau pengguna) mengaktifkan daya diam untuk perangkat Anda, Anda mungkin harus menggunakan metode IWDFDevice2::StopIdle . Jika perangkat dalam status berfungsi (D0), metode ini mencegah perangkat diam hingga driver memanggil IWDFDevice2::ResumeIdle. Jika perangkat dalam status daya rendah saat driver memanggil IWDFDevice2::StopIdle, dan jika sistem dalam status berfungsi (S0), kerangka kerja meminta driver bus untuk memulihkan perangkat ke status kerjanya (D0). Untuk informasi selengkapnya tentang kapan driver Anda mungkin harus memanggil IWDFDevice2::StopIdle, lihat halaman referensi metode.

Jika perangkat dapat bangun sendiri dari status daya rendah, driver untuk bus perangkat berpartisipasi dalam membangunkan perangkat. Driver bus mode kernel melakukan apa pun yang diperlukan pada adaptor bus untuk mengaktifkan dan menonaktifkan kemampuan perangkat untuk bangun dari status daya rendah.

Untuk informasi tentang entri registri yang mengontrol kemampuan diam perangkat, lihat Kontrol Pengguna Perilaku Menganggur dan Bangun Perangkat di UMDF.