EVT_WDF_DEVICE_D0_EXIT fungsi panggilan balik (wdfdevice.h)

[Berlaku untuk KMDF dan UMDF]

Fungsi panggilan balik peristiwa EvtDeviceD0Exit driver melakukan operasi yang diperlukan saat perangkat driver meninggalkan status daya D0.

Sintaks

EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;

NTSTATUS EvtWdfDeviceD0Exit(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

Parameter

[in] Device

Handel ke objek perangkat kerangka kerja.

[in] TargetState

Enumerator jenis WDF_POWER_DEVICE_STATE yang mengidentifikasi status daya perangkat yang akan dimasukkan perangkat.

Nilai kembali

Jika fungsi panggilan balik EvtDeviceD0Exit tidak mengalami kesalahan, fungsi tersebut harus mengembalikan STATUS_SUCCESS atau nilai status lain yang NT_SUCCESS(statusnya) sama dengan TRUE. Jika tidak, nilai status harus dikembalikan yang NT_SUCCESS(status) sama dengan FALSE.

Keterangan

Untuk mendaftarkan fungsi panggilan balik EvtDeviceD0Exit , driver harus memanggil WdfDeviceInitSetPnpowerEventCallbacks.

Jika driver telah mendaftarkan fungsi panggilan balik EvtDeviceD0Exit , kerangka kerja memanggil fungsi setiap kali salah satu perangkat driver meninggalkan status berfungsi (D0). Perangkat meninggalkan status D0 saat salah satu hal berikut ini terjadi:

  • Sistem dan semua perangkatnya akan meninggalkan status kerjanya dan memasuki status daya rendah.
  • Perangkat akan memasuki status daya rendah karena diam, jika perangkat mendukung diam berdaya rendah.
  • Manajer Plug and Play mencoba mendistribusikan ulang sumber daya perangkat keras sistem.
  • Pengguna telah menunjukkan, biasanya melalui antarmuka pengguna aplikasi, bahwa dia ingin menghapus perangkat.
Kerangka kerja ini juga memanggil fungsi panggilan balik EvtDeviceD0Exit setelah perangkat dihapus secara tidak terduga (dihapus secara mendadak).

Untuk informasi selengkapnya tentang kapan kerangka kerja memanggil fungsi panggilan balik ini, lihat Skenario Manajemen PnP dan Power.

Kecuali perangkat telah dihapus secara mendadak, kerangka kerja memanggil fungsi panggilan balik ini segera setelah menonaktifkan gangguan perangkat, tetapi sebelum daya perangkat dikurangi dari D0. Parameter TargetState mengidentifikasi status daya perangkat yang akan dimasukkan perangkat.

Fungsi panggilan balik EvtDeviceD0Exit harus melakukan operasi apa pun yang diperlukan sebelum perangkat memasuki status daya rendah yang ditentukan, seperti menyimpan informasi apa pun yang diperlukan driver nanti untuk memulihkan perangkat ke status daya D0- nya.

Jika parameter TargetState adalah WdfPowerDevicePrepareForHibernation, driver tidak boleh mematikan perangkat, karena sistem akan menggunakan perangkat saat menyimpan file hibernasinya.

Jika TargetState adalah WdfPowerDeviceD3Final, Anda harus berasumsi bahwa sistem sedang dimatikan, perangkat akan dihapus, atau penyeimbangan ulang sumber daya sedang berlangsung. Jika driver Anda harus menyimpan informasi, driver harus menulisnya ke disk atau media penyimpanan permanen lainnya. Namun, salah untuk memeriksa WdfPowerDeviceD3Final dan kemudian melakukan pekerjaan pembersihan untuk penghapusan perangkat. Misalnya, jika perangkat yang telah memasuki status daya Dx karena diam keluar kemudian kejutan dihapus, EvtDeviceD0Exit-nya tidak akan dipanggil lagi. Tempat yang benar untuk melakukan pekerjaan ini adalah di EvtDeviceReleaseHardware sebagai gantinya.

Untuk informasi selengkapnya tentang driver yang menyediakan fungsi panggilan balik ini, lihat Mendukung PnP dan Manajemen Daya di Driver Fungsi.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfdevice.h (termasuk Wdf.h)
IRQL PASSIVE_LEVEL

Lihat juga

EvtDeviceD0Entry