Fungsi WdfDeviceInitRegisterPowerStateChangeCallback (wdfdevice.h)

[Berlaku untuk KMDF saja]

Catatan

Metode ini hanya untuk penggunaan internal Microsoft.

Metode WdfDeviceInitRegisterPowerStateChangeCallback mendaftarkan fungsi panggilan balik peristiwa yang disediakan driver yang dipanggil kerangka kerja saat komputer status daya perangkat berubah status.

Sintaks

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

Parameter

[in] DeviceInit

Penunjuk yang disediakan penelepon ke struktur WDFDEVICE_INIT .

[in] PowerState

Enumerator WDF_DEVICE_POWER_STATE yang mengidentifikasi status mesin daya yang drivernya meminta pemberitahuan.

[in] EvtDevicePowerStateChange

Penunjuk yang disediakan penelepon ke fungsi panggilan balik peristiwa EvtDevicePowerStateChange driver.

[in] CallbackTypes

Kombinasi ORed dari enumerator jenis WDF_STATE_NOTIFICATION_TYPE.

Nilai kembali

Jika operasi berhasil, WdfDeviceInitRegisterPowerStateChangeCallback mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid terdeteksi.
STATUS_INSUFFICIENT_RESOURCES
Memori tidak cukup untuk menyelesaikan operasi.

Keterangan

Jika driver Anda memanggil WdfDeviceInitRegisterPowerStateChangeCallback, itu harus melakukannya sebelum memanggil WdfDeviceCreate.

Untuk informasi selengkapnya tentang memanggil WdfDeviceCreate, lihat Mesin Status dalam Kerangka Kerja.

Contoh

Contoh kode berikut mendaftarkan fungsi panggilan balik peristiwa yang akan dipanggil kerangka kerja saat komputer status daya perangkat berubah status.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfdevice.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)