Bagikan melalui


PO_FX_POWER_CONTROL_CALLBACK fungsi panggilan balik (wdm.h)

Rutinitas panggilan balik PowerControlCallback melakukan operasi kontrol daya yang diminta oleh kerangka kerja manajemen daya (PoFx).

Sintaks

PO_FX_POWER_CONTROL_CALLBACK PoFxPowerControlCallback;

NTSTATUS PoFxPowerControlCallback(
                  PVOID DeviceContext,
  [in]            LPCGUID PowerControlCode,
  [in, optional]  PVOID InBuffer,
  [in]            SIZE_T InBufferSize,
  [out, optional] PVOID OutBuffer,
  [in]            SIZE_T OutBufferSize,
  [out, optional] PSIZE_T BytesReturned
)
{...}

Parameter

DeviceContext

[in] PowerControlCode

Penunjuk ke kode kontrol daya. Kode ini adalah nilai GUID yang menentukan operasi yang diminta.

[in, optional] InBuffer

Penunjuk ke buffer yang berisi data input untuk operasi. Format untuk data dalam buffer ini bergantung pada kode kontrol daya yang ditentukan oleh parameter PowerControlCode . Parameter InBuffer bersifat opsional dan dapat ditentukan sebagai NULL jika operasi yang ditentukan tidak memerlukan data input.

[in] InBufferSize

Ukuran, dalam byte, dari buffer input yang diacu oleh parameter InBuffer . Jika InBuffer NULL, parameter ini adalah nol.

[out, optional] OutBuffer

Penunjuk ke buffer tempat panggilan balik rutin menulis data output dari operasi. Format untuk data dalam buffer ini bergantung pada kode kontrol daya yang ditentukan oleh parameter PowerControlCode . Parameter OutBuffer bersifat opsional dan dapat ditentukan sebagai NULL jika operasi yang ditentukan tidak menghasilkan data output.

[in] OutBufferSize

Ukuran, dalam byte, dari buffer output yang diacu oleh parameter OutBuffer . Jika OutBuffer NULL, parameter ini adalah nol.

[out, optional] BytesReturned

Penunjuk ke lokasi tempat rutin menulis jumlah byte data yang ditulis ke buffer yang ditujukkan oleh OutBuffer. Jumlah byte yang ditulis harus kurang dari atau sama dengan OutBufferSize. Parameter ini bersifat opsional dan dapat ditentukan sebagai NULL jika pemanggil tidak perlu mengetahui berapa banyak byte yang ditulis ke buffer output.

Nilai kembali

Rutinitas PowerControlCallback mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode kesalahan akan menampilkan kode kesalahan yang sesuai.

Keterangan

PoFx memanggil rutinitas ini untuk mengirim permintaan kontrol daya langsung ke driver perangkat. Permintaan kontrol daya mirip dengan permintaan kontrol I/O (IOCTL). Namun, tidak seperti IOCTL, permintaan kontrol daya dikirim langsung ke driver dan tidak diamati oleh driver perangkat lain di tumpukan perangkat. Selama panggilan PowerControlCallback , driver secara sinkron melakukan operasi yang diminta.

Rutinitas ini bersifat opsional. Driver perangkat yang tidak mendukung operasi kontrol daya tidak diperlukan untuk menerapkan rutinitas PowerControlCallback .

Driver perangkat dapat memanggil rutinitas PoFxPowerControl untuk mengirim permintaan kontrol daya ke PoFx.

Untuk informasi selengkapnya tentang permintaan kontrol daya, lihat PoFxPowerControl.

Contoh

Untuk menentukan rutinitas panggilan balik PowerControlCallback , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis rutinitas panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk pengandar. 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 PowerControlCallback yang diberi nama MyPowerControlCallback, gunakan jenis PO_FX_POWER_CONTROL_CALLBACK seperti yang ditunjukkan dalam contoh kode ini:

PO_FX_POWER_CONTROL_CALLBACK MyPowerControlCallback;

Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:

_Use_decl_annotations_
NTSTATUS
  MyPowerControlCallback(
    PVOID Context,
    LPCGUID PowerControlCode,
    PVOID InBuffer,
    SIZE_T InBufferSize,
    PVOID OutBuffer,
    SIZE_T OutBufferSize,
    PSIZE_T BytesReturned
    )
  {
      // Function body
  }

Jenis fungsi PO_FX_POWER_CONTROL_CALLBACK ditentukan 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_POWER_CONTROL_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 Perilaku Fungsi Anotasi.

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

PoFxPowerControl