PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK fungsi panggilan balik (wdm.h)

Rutinitas panggilan balik DevicePowerNotRequiredCallback memberi tahu driver perangkat bahwa perangkat tidak diperlukan untuk tetap dalam status daya D0.

Sintaks

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK PoFxDevicePowerNotRequiredCallback;

void PoFxDevicePowerNotRequiredCallback(
  [in] PVOID Context
)
{...}

Parameter

[in] Context

Penunjuk ke konteks perangkat. Driver perangkat menggunakan konteks ini untuk menyimpan informasi tentang status daya perangkat saat ini. Driver perangkat menentukan pointer ini di anggota DeviceContext dari struktur PO_FX_DEVICE yang digunakan driver untuk mendaftarkan perangkat dengan kerangka kerja manajemen daya (PoFx). Konteks ini buram untuk PoFx.

Nilai kembali

Tidak ada

Keterangan

Ketika PoFx memanggil rutinitas DevicePowerNotRequiredCallback driver, driver harus terlebih dahulu memutuskan apakah akan memulai transisi ke status Dx berdaya rendah (dengan mengirim permintaan IRP_MN_SET_POWER ke bawah tumpukan perangkat) atau tetap dalam status D0. Selanjutnya, tanpa menunggu transisi Dx selesai, driver harus memanggil rutinitas PoFxCompleteDevicePowerNotRequired untuk memberi tahu PoFx bahwa driver menyelesaikan responsnya terhadap panggilan balik DevicePowerNotRequiredCallback . Driver dapat memanggil PoFxCompleteDevicePowerNotRequired sebelum atau setelah rutinitas DevicePowerNotRequiredCallback kembali.

Saat perangkat berada dalam status D0, dan status Fx atau kondisi aktif/menganggur komponen dalam perangkat berubah, PoFx mengevaluasi apakah perangkat dapat memasuki status Dx berdaya rendah atau harus tetap dalam status D0. Jika perangkat dapat memasuki status Dx berdaya rendah, PoFx memanggil rutinitas DevicePowerNotRequiredCallback driver.

Jika perangkat memasuki status Dx berdaya rendah sebagai respons terhadap panggilan balik DevicePowerNotRequiredCallback , tetapi PoFx kemudian menentukan bahwa perangkat harus memasuki status D0, PoFx memanggil rutinitas DevicePowerRequiredCallback driver. Menanggapi panggilan ini, perangkat harus memasuki status D0.

Contoh

Untuk menentukan rutinitas panggilan balik DevicePowerNotRequiredCallback , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis rutinitas panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk driver. Mendeklarasikan fungsi menggunakan jenis fungsi panggilan balik membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.

Misalnya, untuk menentukan rutinitas panggilan balik DevicePowerNotRequiredCallback yang diberi nama MyDevicePowerNotRequiredCallback, gunakan jenis PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK seperti yang ditunjukkan dalam contoh kode ini:

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK MyDevicePowerNotRequiredCallback;

Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:

_Use_decl_annotations_
VOID
  MyDevicePowerNotRequiredCallback(
    PVOID Context
    )
  {
      // Function body
  }

Jenis fungsi PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK didefinisikan dalam file header Wdm.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan _Use_decl_annotations_ anotasi ke definisi fungsi Anda. Anotasi _Use_decl_annotations_ memastikan bahwa anotasi yang diterapkan ke jenis fungsi PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver WDM. Untuk informasi tentang _Use_decl_annotations_, lihat Menganotasi Perilaku Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung dimulai dengan Windows 8.
Target Platform Desktop
Header wdm.h (termasuk Wudfwdm.h)
IRQL Dipanggil di IRQL <= DISPATCH_LEVEL.

Lihat juga

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PO_FX_DEVICE

PoFxCompleteDevicePowerNotRequired

PoFxRegisterDevice