SET_D3COLD_SUPPORT fungsi panggilan balik (wdm.h)

Rutinitas panggilan balik SetD3ColdSupport memungkinkan atau menonaktifkan transisi ke status daya perangkat D3cold.

Sintaks

SET_D3COLD_SUPPORT SetD3coldSupport;

void SetD3coldSupport(
  [in, optional] PVOID Context,
  [in]           BOOLEAN D3ColdSupport
)
{...}

Parameter

[in, optional] Context

Penunjuk ke informasi konteks khusus antarmuka. Pemanggil mengatur parameter ini ke nilai anggota Konteks dari struktur D3COLD_SUPPORT_INTERFACE untuk antarmuka.

[in] D3ColdSupport

Apakah akan mengizinkan transisi dari D3hot ke D3cold. Atur ke TRUE untuk mengaktifkan transisi ini. Jika tidak, atur ke FALSE. Untuk informasi selengkapnya, lihat Keterangan.

Nilai kembali

Tidak ada

Keterangan

Driver yang merupakan pemilik kebijakan daya (PPO) untuk perangkat dapat memanggil rutinitas ini untuk mengaktifkan atau menonaktifkan transisi ke substat D3cold yang mungkin terjadi ketika komputer berada dalam status daya sistem S0 (bekerja) dan tidak bersiap untuk keluar dari S0.

Jika perangkat harus dapat memberi sinyal peristiwa bangun dari status Dx berdaya rendah yang dimasukkannya, driver untuk perangkat ini tidak boleh mengaktifkan transisi ke substat D3cold kecuali perangkat dapat memberi sinyal peristiwa bangun dari substat ini. Jika tidak, setelah memasukkan D3cold, perangkat tidak akan tersedia sampai komputer dimulai ulang atau bangun dari keadaan tidur.

Driver untuk perangkat dapat memanggil rutinitas GetIdleWakeInfo untuk menentukan apakah perangkat dapat memberi sinyal peristiwa bangun dari D3cold.

Jika perlu, driver untuk perangkat dapat melakukan serangkaian panggilan SetD3ColdSupport untuk mengaktifkan dan menonaktifkan transisi D3cold secara bergantian sebagai respons terhadap kondisi yang berubah secara dinamis.

Misalnya, perangkat grafis mungkin memiliki konteks perangkat keras yang besar untuk dipulihkan setelah transisi dari D3cold ke D0. Waktu yang diperlukan untuk memulihkan konteks ini mungkin atau mungkin tidak dapat diterima tergantung pada serangkaian tugas yang saat ini dilakukan pengguna. Selain itu, waktu pemulihan mungkin berbeda-beda dengan campuran tugas ini. Driver mungkin perlu mengaktifkan dan menonaktifkan transisi ke D3cold secara dinamis saat tugas mencampur perubahan.

Perangkat hanya dapat memasukkan substat D3cold dari substate D3hot. Jika driver memanggil SetD3ColdSupport untuk mengaktifkan transisi dari D3hot ke D3cold, perangkat mungkin atau mungkin tidak memasukkan D3cold setelah memasuki D3hot. Menanggapi peristiwa bangun, perangkat mungkin memasukkan D0 langsung dari D3hot tanpa pernah melewati D3cold.

Ketika perangkat berpindah dari D3hot ke D3cold, perangkat mungkin melakukannya karena sumber daya yang dibagikannya dengan beberapa perangkat lain dimatikan. Beberapa waktu 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 status default dan menyalakan daya mereka.

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 memfungsikan perangkatnya untuk memasukkan D3cold. Jika tidak, driver tidak akan tahu kapan perangkat memasuki D0.

Dimulai dengan Windows 8, driver WDM dapat mendaftarkan perangkatnya dengan kerangka kerja daya (PoFx) dan diberi tahu oleh rutinitas DevicePowerRequiredCallback saat perangkat memasuki D0. Demikian pula, driver KMDF dapat mendaftarkan perangkatnya dengan PoFx dan diberi tahu oleh panggilan balik peristiwa EvtDeviceD0Entry .

Driver yang tidak mendaftarkan perangkatnya dengan PoFx masih dapat diberi tahu tentang transisi ke D0 jika perangkat dipersenjatai untuk bangun. Ketika driver bus menyalakan daya ke perangkat, mereka menyelesaikan permintaan IRP_MN_WAIT_WAKE driver. Sebagai tanggapan, driver menginisialisasi perangkatnya untuk beroperasi di D0.

Setelah sumber daya yang dibagikan oleh beberapa perangkat menyala, perangkat yang drivernya meminta transisi ke D0 mungkin satu-satunya perangkat ini yang memiliki pekerjaan yang harus dilakukan. Perangkat lain kemungkinan tidak aktif, dalam hal ini driver mereka, setelah beberapa waktu, akan memindahkan perangkat ini ke D3hot.

Jika driver memanggil SetD3ColdSupport untuk menonaktifkan transisi ke D3cold, D0 adalah satu-satunya status daya perangkat yang dapat dimasukkan perangkat dari D3hot.

Jika driver memanggil SetD3ColdSupport untuk mengaktifkan transisi ke D3cold, transisi ini mungkin dinonaktifkan karena alasan lain. Driver dapat memanggil rutinitas GetD3ColdCapability untuk menentukan apakah perangkat mampu memasukkan substat D3cold. Namun, driver mungkin tidak memerlukan informasi ini. Jika perangkat tidak mampu memasukkan D3cold, panggilan ke SetD3ColdSupport tidak berpengaruh, tetapi tidak berbahaya.

Rutinitas SetD3ColdSupport hanya memengaruhi transisi D3hot-to-D3cold yang mungkin terjadi ketika komputer berada di (dan tidak bersiap untuk keluar) status S0. Rutinitas ini tidak berpengaruh pada kasus di mana komputer bersiap untuk keluar dari S0 dan memasuki status sistem berdaya rendah. Perangkat di substate D3hot mungkin selalu memasuki substat D3cold tepat sebelum komputer memasuki status daya rendah sistem.

Secara default, sebelum panggilan pertama ke rutinitas SetD3ColdSupport , transisi D3hot-to-D3cold dinonaktifkan. Untuk mengubah default ini sehingga transisi D3hot-to-D3cold diaktifkan sebelum panggilan SetD3ColdSupport pertama, paket driver untuk perangkat dapat menyertakan dua baris berikut di bagian DDInstall.HW dari file INF yang menginstal driver:

Include = machine.inf
Needs = PciD3ColdSupported

Windows 8 adalah versi pertama Windows yang mendukung perangkat yang dapat masuk dan keluar dari substat D3cold saat komputer tetap dalam status S0. Untuk informasi selengkapnya, lihat Status Low-Power Perangkat.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 8.
Target Platform Desktop
Header wdm.h (termasuk Wdm.h)
IRQL PASSIVE_LEVEL

Lihat juga

D3COLD_SUPPORT_INTERFACE

DevicePowerRequiredCallback

EvtDeviceD0Entry

GetD3ColdCapability

IRP_MN_WAIT_WAKE