Status Daya Perangkat USB

Topik ini menjelaskan status perangkat WDM yang akan digunakan untuk status daya perangkat USB seperti yang ditentukan dalam bagian 9.1 dari spesifikasi Universal Serial Bus 2.0.

Status daya perangkat USB (seperti yang ditentukan dalam bagian 9.1 dari spesifikasi Universal Serial Bus 2.0) dapat dikelompokkan ke dalam tiga kategori umum:

  • Terpasang: Perangkat terpasang, tetapi tidak sepenuhnya menyala.
  • Didukung: Perangkat berada dalam salah satu status yang sepenuhnya didukung: Default, Alamat, atau Dikonfigurasi.
  • Ditangguhkan: Perangkat adalah status Menganggur dan beroperasi dengan daya rendah.

Tidak ada korelasi langsung antara status daya perangkat yang ditentukan dalam model daya WDM dan status daya perangkat yang ditentukan dalam standar USB. Misalnya, istilah yang ditangguhkan dan diam memiliki arti yang sangat spesifik dalam spesifikasi USB; namun istilah-istilah ini sering digunakan secara berbeda dalam model daya WDM. Driver klien Windows dapat menempatkan perangkat USB dalam status Ditangguhkan. Untuk informasi selengkapnya, lihat USB Selective Suspend. Ketika driver klien siap untuk menangguhkan perangkatnya, ia menginstruksikan driver bus untuk menganggurnya. Untuk diskusi tentang permintaan diam, lihat Penangguhan Selektif USB.

Status daya perangkat dalam model WDM dapat diringkas sebagai berikut:

  • D0 - Status kerja. Perangkat sepenuhnya dinyalakan.
  • D1/D2 - Status tidur perantara. Status-status ini memungkinkan perangkat untuk dipersenjatai untuk bangun jarak jauh.
  • D3 - Keadaan tidur terdalam. Perangkat dalam status D3 tidak dapat dipersenjatai untuk bangun jarak jauh.

Untuk diskusi lengkap tentang status daya perangkat dalam model daya WDM, lihat Status Daya Perangkat.

Model daya WDM menggunakan istilah arming perangkat untuk wakeup jarak jauh. Arming adalah operasi perangkat lunak yang biasanya, tetapi tidak selalu, menyebabkan operasi perangkat keras mengaktifkan fitur bangun jarak jauh pada perangkat USB. Operasi perangkat lunak WDM yang mempersenjatai perangkat untuk bangun jarak jauh adalah IRP bangun tunggu (IRP_MN_WAIT_WAKE). Untuk informasi selengkapnya tentang IRP ini, lihat Perangkat Pendukung yang Memiliki Kemampuan Wake-Up.

Untuk penjelasan tentang hubungan antara operasi perangkat lunak ini dan pengaktifan fitur wakeup jarak jauh USB, lihat Remote Wakeup perangkat USB.

Bagian ini berisi sub-bagian berikut:

Mengubah Status Daya Perangkat non-Komposit

Manajer kebijakan daya untuk perangkat USB bertanggung jawab untuk mengatur status daya perangkat. Manajer kebijakan daya menetapkan status daya dengan mengeluarkan IRP daya WDM (IRP_MN_SET_POWER). Untuk informasi selengkapnya tentang manajer kebijakan daya, lihat Kepemilikan Kebijakan Daya.

Tindakan yang diambil oleh driver bus bergantung pada tingkat daya perangkat yang diminta manajer kebijakan daya. Berikut ini mencantumkan tindakan yang dilakukan pengemudi bus untuk setiap tingkat permintaan daya yang ditetapkan:

  • D0

    Pengemudi bus melakukan tugas-tugas berikut:

    1. Memastikan bahwa semua hub USB upsteam didukung dan siap menerima permintaan.
    2. Melanjutkan port dengan menghapus fitur PORT_SUSPEND, jika port USB perangkat ditangguhkan.
    3. Menyelesaikan IRP diam perangkat dengan STATUS_SUCCESS, jika ada yang tertunda.
    4. Matikan perangkat untuk bangun jarak jauh jika bersenjata.
  • D1/D2

    Pengemudi bus melakukan tugas-tugas berikut:

    1. Mempersenjatai perangkat untuk bangun dari jarak jauh, jika IRP bangun tunggu (IRP_MN_WAIT_WAKE) tertunda.
    2. Menangguhkan port USB perangkat dengan mengatur fitur PORT_SUSPEND.
  • D3

    Pengemudi bus melakukan tugas-tugas berikut:

    1. Menangguhkan port USB perangkat dengan mengatur fitur PORT_SUSPEND.
    2. Menyelesaikan IRP tunggu bangun perangkat dengan STATUS_POWER_STATE_INVALID, jika ada yang tertunda.
    3. Menyelesaikan IRP menganggur perangkat (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) dengan STATUS_POWER_STATE_INVALID, jika ada yang tertunda.

Mengubah Status Daya Perangkat Komposit

Driver klien untuk antarmuka pada perangkat komposit harus berbagi status daya perangkat komposit dengan driver klien untuk antarmuka lain pada perangkat. Oleh karena itu driver klien untuk antarmuka tidak dapat menempatkan perangkat komposit ke dalam status daya yang lebih rendah tanpa memengaruhi antarmuka lain pada perangkat. Driver Induk Generik USB (Usbccgp.sys) mengambil tindakan berikut ketika driver klien antarmuka mengirim permintaan IRP_MN_SET_POWER.

  • D0

    Pengemudi bus melakukan tugas-tugas berikut:

    1. Memastikan bahwa semua hub USB upsteam didukung dan siap menerima permintaan.
    2. Melanjutkan port dengan menghapus fitur PORT_SUSPEND, jika port USB perangkat ditangguhkan.
    3. Menyelesaikan IRP menganggur driver klien dengan STATUS_SUCCESS, jika ada yang tertunda.
  • D1/D2

    Sopir bus tidak mengambil tindakan.

  • D3

    Pengemudi bus melakukan tugas-tugas berikut:

    1. Menyelesaikan IRP tunggu driver klien (IRP_MN_WAIT_WAKE) dengan STATUS_POWER_STATE_INVALID, jika ada yang tertunda.
    2. Menyelesaikan IRP diam (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) driver klien dengan STATUS_POWER_STATE_INVALID, jika ada yang tertunda.

Driver induk generik menangguhkan port USB untuk perangkat ketika salah satu kondisi berikut ini benar:

  • Sistem beralih ke status daya yang lebih rendah.
  • Driver klien untuk semua fungsi pada perangkat komposit telah memulai penangguhan selektif.

USB Power Management