Bagikan melalui


Sumber Daya Interupsi GPIO-Based

Driver untuk perangkat periferal yang mengirim gangguan ke pin I/O (GPIO) tujuan umum memperoleh gangguan GPIO sebagai sumber daya gangguan Windows abstrak. Driver kerangka kerja driver mode kernel (KMDF) dan driver kerangka kerja driver mode pengguna (UMDF) menerima sumber daya ini melalui fungsi panggilan balik peristiwa EvtDevicePrepareHardware mereka.

Driver perangkat periferal yang menggunakan sumber daya interupsi berbasis GPIO dapat mengabaikan detail implementasi tingkat rendah, seperti apakah gangguan dihasilkan oleh pin GPIO alih-alih oleh pengontrol interupsi atau dengan pin interupsi pada chip prosesor.

Gangguan berbasis GPIO adalah sumber daya jenis CmResourceTypeInterrupt. Parameter konfigurasi untuk gangguan ini terkandung dalam anggota u.Interupsi struktur CM_PARTIAL_RESOURCE_DESCRIPTOR yang menjelaskan sumber daya interupsi. Untuk menghubungkan rutinitas layanan interupsi (ISR) ke interupsi, driver UMDF atau KMDF memasok deskripsi mentah dan terjemahan sumber daya interupsi ke metode pembuatan interupsi.

Driver KMDF atau UMDF untuk perangkat periferal memanggil metode WdfInterruptCreate untuk menghubungkan ISR ke gangguan dari perangkat. Salah satu parameter input untuk metode ini adalah penunjuk ke struktur WDF_INTERRUPT_CONFIG yang berisi informasi konfigurasi untuk gangguan.

Jika driver perangkat periferal menggunakan lebih dari satu sumber daya interupsi GPIO, driver ini harus mengetahui urutan di mana sumber daya ini muncul dalam daftar sumber daya mentah dan diterjemahkan yang disediakan sebagai parameter input ke fungsi EvtDevicePrepareHardware atau metode OnPrepareHardware . Sumber daya dalam daftar ini muncul dalam urutan di mana mereka dijelaskan dalam firmware platform, yang harus sesuai dengan urutan yang diharapkan oleh driver.