PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK fungsi panggilan balik (wdm.h)

Rutinitas panggilan balik ComponentActiveConditionCallback memberi tahu driver bahwa komponen yang ditentukan menyelesaikan transisi dari kondisi menganggur ke kondisi aktif.

Sintaks

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK PoFxComponentActiveConditionCallback;

void PoFxComponentActiveConditionCallback(
  [in] PVOID Context,
  [in] ULONG Component
)
{...}

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.

[in] Component

Menentukan indeks yang mengidentifikasi komponen. Parameter ini adalah indeks ke dalam array Komponen dalam struktur PO_FX_DEVICE yang digunakan driver perangkat untuk mendaftarkan perangkat dengan PoFx. Jika array Komponen berisi elemen N, indeks komponen berkisar antara 0 hingga N–1.

Nilai kembali

Tidak ada

Keterangan

Daftar perangkat keras komponen hanya dapat diakses ketika komponen berada dalam kondisi aktif. Jangan mengandalkan status daya Fx komponen untuk menentukan apakah komponen dapat diakses. Jika komponen berada dalam status F0 dan berada dalam kondisi menganggur, komponen mungkin akan beralih ke status Fx lain.

Untuk mendapatkan akses ke komponen yang berada dalam kondisi menganggur, driver dapat memanggil rutinitas PoFxActivateComponent untuk mengalihkan komponen ke kondisi aktif. Jika komponen belum dalam kondisi aktif ketika PoFxActivateComponent dipanggil, PoFx memulai transisi ke kondisi aktif, lalu memanggil rutinitas ComponentActiveConditionCallback untuk memberi tahu driver ketika transisi selesai.

Driver menerima panggilan balik ComponentActiveConditionCallback setiap kali komponen menyelesaikan transisi ke kondisi aktif, terlepas dari apakah driver yang disebut PoFxActivateComponent untuk memulai transisi. Misalnya, kernel Windows mungkin mengaktifkan komponen atas nama driver sebelum mengirim IRP Plug and Play atau IRP set-power sistem ke driver.

Contoh

Untuk menentukan rutinitas panggilan balik ComponentActiveConditionCallback , 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 ComponentActiveConditionCallback yang diberi nama MyComponentActiveConditionCallback, gunakan jenis PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK seperti yang ditunjukkan dalam contoh kode ini:

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK MyComponentActiveConditionCallback;

Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:

_Use_decl_annotations_
VOID
  MyComponentActiveConditionCallback(
    PVOID Context,
    ULONG Component
    )
  {
      // Function body
  }

Jenis fungsi PO_FX_COMPONENT_ACTIVE_CONDITION_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_COMPONENT_ACTIVE_CONDITION_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

PO_FX_DEVICE

PoFxActivateComponent