Fungsi WdfInterruptSynchronize (wdfinterrupt.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfInterruptSynchronize menjalankan fungsi panggilan balik tertentu di DIRQL perangkat sambil menahan kunci putar objek interupsi.
Untuk objek interupsi tingkat pasif, metode ini menjalankan fungsi panggilan balik tertentu pada tingkat pasif sambil menahan kunci interupsi tingkat pasif objek interupsi.
Sintaks
BOOLEAN WdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
[in] WDFCONTEXT Context
);
Parameter
[in] Interrupt
Handel ke objek interupsi kerangka kerja.
[in] Callback
Penunjuk ke fungsi panggilan balik EvtInterruptSynchronize .
[in] Context
Penunjuk yang tidak diketik ke informasi yang disediakan driver yang diteruskan kerangka kerja ke fungsi panggilan balik EvtInterruptSynchronize .
Nilai kembali
WdfInterruptSynchronize mengembalikan nilai status Boolean yang dikembalikan fungsi panggilan balik EvtInterruptSynchronize .
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Jika Anda ingin driver Anda menjalankan kode yang harus berjalan tanpa didahulukan dan dengan layanan gangguan perangkat dinonaktifkan secara efektif, Anda harus menempatkan kode tersebut dalam fungsi panggilan balik EvtInterruptSynchronize . Untuk menjadwalkan eksekusi fungsi panggilan balik, driver Anda harus memanggil WdfInterruptSynchronize.
Metode WdfInterruptSynchronize kembali setelah fungsi panggilan balik EvtInterruptSynchronize selesai dieksekusi.
Alih-alih memanggil WdfInterruptSynchronize, driver Anda dapat memanggil WdfInterruptAcquireLock dan WdfInterruptReleaseLock.
Untuk informasi selengkapnya tentang metode WdfInterruptSynchronize , lihat Menyinkronkan Kode Interupsi.
Untuk informasi selengkapnya tentang penanganan gangguan dalam driver berbasis kerangka kerja, lihat Menangani Gangguan Perangkat Keras.
Untuk gangguan tingkat pasif, driver harus memanggil WdfInterruptSynchronize di IRQL = PASSIVE_LEVEL.
Jangan panggil WdfInterruptSynchronize dari konteks utas arbitrer, seperti penangan permintaan.
Contoh
Contoh kode berikut menunjukkan cara memanggil WdfInterruptSynchronize untuk menjadwalkan eksekusi fungsi panggilan balik EvtInterruptSynchronize .
BOOLEAN synchronizeReturnValue;
synchronizeReturnValue = WdfInterruptSynchronize(
WdfInterrupt,
MyEvtInterruptSynchronize,
CallbackContext
);
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfinterrupt.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |