Bagikan melalui


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)

Lihat juga

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock