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