Bagikan melalui


DeviceState

Anggota DeviceStateDEVICE_CAPABILITIES adalah array nilai DEVICE_POWER_STATE yang diindeks oleh nilai SYSTEM_POWER_STATE mulai dari PowerSystemWorking hingga PowerSystemShutdown. Setiap elemen array berisi status daya perangkat maksimum (bertenaga tertinggi) yang dapat didukung perangkat untuk status daya sistem yang ditandai oleh indeks, atau PowerDeviceUnspecified jika status daya sistem tidak didukung.

Misalnya, pada sistem yang hanya mendukung status daya sistem S0, S4, dan S5, array DeviceState untuk perangkat yang hanya mendukung status D0 dan D3 yang berisi nilai yang diperlihatkan dalam tabel berikut.

Elemen DeviceState Nilai

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping2]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping3]

PowerDeviceUnspecified

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Pada sistem yang mendukung semua status daya sistem, tabel berikut mencantumkan nilai yang akan dimuat array untuk perangkat yang harus dalam status D2 atau lebih rendah setiap kali sistem masuk ke status tidur perantara dan dalam status D3 saat sistem berhibernasi.

Elemen DeviceState Nilai

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceD2

DeviceState[PowerSystemSleeping2]

PowerDeviceD2

DeviceState[PowerSystemSleeping3]

PowerDeviceD2

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Perhatikan bahwa entri dalam array DeviceState menandakan status daya perangkat tertinggi yang dapat didukung perangkat untuk status daya sistem yang sesuai. Dalam contoh sebelumnya, perangkat dapat berada dalam status D3 untuk status daya sistem apa pun, status D2 untuk status daya sistem PowerSystemWorking melalui PowerSystemSleeping3, dan status D1 untuk status sistem PowerSystemWorking.

Driver bus atau filter ACPI menetapkan nilai-nilai ini berdasarkan kemampuan simpul perangkat induk.

Sebagai aturan umum, driver tingkat yang lebih tinggi tidak boleh mengubah nilai-nilai ini. Namun, dalam keadaan langka di mana perubahan seperti itu diperlukan, pengemudi dapat menentukan status yang lebih rendah (kurang bertenaga) daripada sopir bus atau filter ACPI yang awalnya dikembalikan. Misalnya, asumsikan bahwa DeviceState[PowerSystemSleeping1] memetakan ke PowerDeviceD2, seperti pada tabel di atas. Driver dapat mengubah nilai ini menjadi PowerDeviceD3, tetapi tidak ke PowerDeviceD1 atau PowerDeviceD0.