WUDF_INTERRUPT_ISR fungsi panggilan balik (wudfinterrupt.h)

Peringatan

UMDF 2 adalah versi terbaru UMDF dan pengganti 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 Memulai 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 gangguan perangkat keras perangkat. Jika tidak, nilai ini adalah 0.

[in] Reserved

Dicadangkan untuk penggunaan sistem.

Mengembalikan nilai

Tidak ada

Keterangan

Mengembalikan TRUE jika driver mengakui kepemilikan interupsi, dan telah menghentikan 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 gangguan perangkat keras terjadi.

Untuk interupsi yang dipicu tepi atau gangguan sinyal pesan (MSI), kerangka kerja memanggil OnInterruptIsr di luar konteks pengiriman interupsi sistem operasi. Ini karena UMDF hanya memungkinkan gangguan tepi atau MSI yang tidak dibagikan, dan driver tidak perlu berinteraksi dengan perangkat kerasnya dalam konteks ini.

Untuk gangguan yang dipicu tingkat, kerangka kerja memanggil OnInterruptIsr dalam konteks pengiriman interupsi sistem operasi. Akibatnya, rangkaian 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 gangguan 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 Interupsi Perangkat Keras dan Penanganan.

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

   
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