WUDF_INTERRUPT_ISR fungsi panggilan balik (wudfinterrupt.h)
Peringatan
UMDF 2 adalah versi terbaru UMDF dan supersedes UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.
Fungsi panggilan balik peristiwa OnInterruptIsr driver melayani gangguan perangkat keras.
Sintaks
typedef
BOOLEAN
_Function_class_(WUDF_INTERRUPT_ISR)
WUDF_INTERRUPT_ISR(
_In_
IWDFInterrupt* Interrupt,
_In_
ULONG MessageID,
_In_
ULONG Reserved
);
typedef WUDF_INTERRUPT_ISR *PFN_WUDF_INTERRUPT_ISR;
Parameter
[in] Interrupt
Penunjuk ke antarmuka IWDFInterrupt .
[in] MessageID
Jika perangkat menggunakan interupsi bertanda pesan (MSI), parameter ini adalah nomor pesan yang mengidentifikasi pesan interupsi perangkat keras perangkat. Jika tidak, nilai ini adalah 0.
[in] Reserved
Dicadangkan untuk penggunaan sistem.
Nilai kembali
Tidak ada
Keterangan
Mengembalikan TRUE jika driver mengakui kepemilikan interupsi, dan telah berhenti dan mengakui gangguan pada perangkatnya. Jika tidak, mengembalikan FALSE.
Untuk mendaftarkan fungsi panggilan balik OnInterruptIsr , driver Anda harus menempatkan alamat fungsi panggilan balik dalam struktur WUDF_INTERRUPT_CONFIG sebelum memanggil IWDFDevice3::CreateInterrupt.
Fungsi panggilan balik OnInterruptIsr adalah rutinitas layanan interupsi (ISR) driver UMDF, yang dipanggil pada PASSIVE_LEVEL ketika terjadi gangguan perangkat keras.
Untuk interupsi yang dipicu tepi atau interupsi yang disinyalir pesan (MSI), kerangka kerja memanggil OnInterruptIsr di luar konteks pengiriman interupsi sistem operasi. Ini karena UMDF hanya memungkinkan interupsi tepi atau MSI yang tidak dibagikan, dan driver tidak perlu berinteraksi dengan perangkat kerasnya dalam konteks ini.
Untuk interupsi yang dipicu tingkat, kerangka kerja memanggil OnInterruptIsr dalam konteks pengiriman interupsi sistem operasi. Akibatnya, alur pengiriman interupsi sistem operasi diblokir dalam mode kernel menunggu respons dari driver.
Biasanya, OnInterruptIsr menyimpan informasi volatil apa pun yang mungkin hilang dan menghapus gangguan perangkat keras. Untuk interupsi yang dipicu tingkat, driver harus berhenti dan mengakui gangguan pada perangkat dan kemudian mengembalikan TRUE jika memiliki gangguan. Driver harus melakukan pemrosesan lebih lanjut dalam panggilan balik OnInterruptWorkItem . Untuk mengantre item kerja, driver memanggil metode IWDFInterrupt::QueueWorkItemForIsr .
Untuk informasi selengkapnya tentang penanganan gangguan pada driver UMDF, lihat Mengakses Perangkat Keras dan Menangani Gangguan.
Contoh
Jenis fungsi dideklarasikan dalam Wudfinterrupt.h, sebagai berikut.
typedef
BOOLEAN
WUDF_INTERRUPT_ISR(
_In_
IWDFInterrupt* Interrupt,
_In_
ULONG MessageID,
_In_
ULONG Reserved
);
typedef WUDF_INTERRUPT_ISR *PFN_WUDF_INTERRUPT_ISR;
Untuk menentukan fungsi panggilan balik OnInterruptIsr yang bernama MyInterruptIsr, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan SDV dan alat verifikasi lainnya, sebagai berikut:
WUDF_INTERRUPT_NOTIFY MyInterruptIsr;
Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut:
BOOLEAN
MyInterruptIsr (
IN IWDFInterrupt* Interrupt,
IN ULONG MessageID,
IN ULONG Reserved
)
{…}
Persyaratan
Persyaratan | Nilai |
---|---|
Akhir dukungan | Tidak tersedia di UMDF 2.0 dan yang lebih baru. |
Target Platform | Desktop |
Versi UMDF minimum | 1.11 |
Header | wudfinterrupt.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk