GPIO_CLIENT_START_CONTROLLER fungsi panggilan balik (gpioclx.h)
Fungsi panggilan balik peristiwa CLIENT_StartController melakukan operasi yang diperlukan ketika perangkat pengontrol I/O (GPIO) tujuan umum memasuki status daya D0.
Sintaks
GPIO_CLIENT_START_CONTROLLER GpioClientStartController;
NTSTATUS GpioClientStartController(
[in] PVOID Context,
[in] BOOLEAN RestoreContext,
[in] WDF_POWER_DEVICE_STATE PreviousPowerState
)
{...}
Parameter
[in] Context
Penunjuk ke konteks perangkat driver pengontrol GPIO.
[in] RestoreContext
Apakah driver klien harus memulihkan pengontrol GPIO ke konteks perangkat keras yang disimpan sebelumnya. Jika TRUE, konteks perangkat keras harus dipulihkan. Jika FALSE, konteks perangkat keras tidak boleh dipulihkan. Untuk informasi selengkapnya, lihat Keterangan.
[in] PreviousPowerState
Status daya perangkat sebelumnya. Parameter ini adalah nilai enumerasi WDF_POWER_DEVICE_STATE yang menentukan status daya rendah tempat perangkat memasuki status daya D0. Driver pengontrol GPIO dapat menggunakan informasi ini untuk menentukan cara mengonfigurasi perangkat pengontrol sehingga siap digunakan.
Nilai kembali
Fungsi CLIENT_StartController mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode kesalahan akan menampilkan kode kesalahan yang sesuai.
Keterangan
Fungsi panggilan balik ini diimplementasikan oleh driver pengontrol GPIO. Ekstensi kerangka kerja GPIO (GpioClx) memanggil fungsi ini untuk menempatkan perangkat pengontrol GPIO dalam keadaan awal yang diketahui saat startup sistem atau ketika perangkat beralih dari status daya rendah ke status kerja. Fungsi panggilan balik ini harus melakukan operasi apa pun yang diperlukan setelah perangkat bangun dari status daya rendah, seperti memulihkan informasi apa pun yang dibutuhkan driver setelah perangkat memasuki status daya D0.
Biasanya, fungsi panggilan balik CLIENT_StartController mengatur semua pin GPIO ke status defaultnya.
Untuk mendaftarkan fungsi panggilan balik CLIENT_StartController driver Anda, panggil metode GPIO_CLX_RegisterClient . Metode ini menerima, sebagai parameter input, penunjuk ke struktur GPIO_CLIENT_REGISTRATION_PACKET yang berisi penunjuk fungsi CLIENT_StartController .
Meskipun fungsi panggilan balik CLIENT_StartController dipanggil di IRQL = PASSIVE_LEVEL, Anda tidak boleh membuat fungsi ini dapat di-pageable. Panggilan balik CLIENT_StartController berada di jalur waktu penting untuk memulihkan daya ke perangkat di platform perangkat keras dan, karena alasan performa, itu tidak boleh tertunda oleh kesalahan halaman.
Contoh
Untuk menentukan fungsi panggilan balik CLIENT_StartController , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi 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 fungsi panggilan balik CLIENT_StartController yang diberi nama MyEvtGpioStartController
, gunakan jenis fungsi GPIO_CLIENT_START_CONTROLLER, seperti yang ditunjukkan dalam contoh kode ini:
GPIO_CLIENT_START_CONTROLLER MyEvtGpioStartController;
Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut:
_Use_decl_annotations_
VOID
MyEvtGpioStartController(
PVOID Context,
BOOLEAN RestoreContext,
WDF_POWER_DEVICE_STATE PreviousPowerState
)
{ ... }
Jenis fungsi GPIO_CLIENT_START_CONTROLLER ditentukan dalam file header Gpioclx.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi GPIO_CLIENT_START_CONTROLLER dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver KMDF. Untuk informasi selengkapnya tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung dimulai dengan Windows 8. |
Target Platform | Desktop |
Header | gpioclx.h |
IRQL | Dipanggil di PASSIVE_LEVEL (lihat Keterangan). |