Bagikan melalui


EVT_WDF_REQUEST_COMPLETION_ROUTINE fungsi panggilan balik (wdfrequest.h)

[Berlaku untuk KMDF dan UMDF]

Fungsi panggilan balik peristiwa CompletionRoutine driver dijalankan ketika driver lain menyelesaikan permintaan I/O tertentu.

Sintaks

EVT_WDF_REQUEST_COMPLETION_ROUTINE EvtWdfRequestCompletionRoutine;

void EvtWdfRequestCompletionRoutine(
  [in] WDFREQUEST Request,
  [in] WDFIOTARGET Target,
  [in] PWDF_REQUEST_COMPLETION_PARAMS Params,
  [in] WDFCONTEXT Context
)
{...}

Parameter

[in] Request

Handel ke objek permintaan kerangka kerja yang mewakili permintaan I/O yang telah selesai.

[in] Target

Handel ke objek target I/O yang mewakili target I/O yang menyelesaikan permintaan.

[in] Params

Penunjuk ke struktur WDF_REQUEST_COMPLETION_PARAMS yang berisi informasi tentang permintaan yang telah selesai. Lihat catatan di bawah ini mengenai validitas parameter penyelesaian.

[in] Context

Informasi konteks yang disediakan driver, yang ditentukan driver dalam panggilan sebelumnya ke WdfRequestSetCompletionRoutine.

Nilai kembali

Tidak ada

Keterangan

Untuk mendaftarkan fungsi panggilan balik CompletionRoutine untuk permintaan I/O, driver harus memanggil WdfRequestSetCompletionRoutine. Untuk informasi selengkapnya tentang fungsi panggilan balik ini, lihat Menyelesaikan Permintaan I/O.

Struktur parameter penyelesaian sepenuhnya diisi dengan informasi yang valid hanya jika driver memformat permintaan dengan memanggil salah satu hal berikut:

Jika driver memformat permintaan menggunakan WdfRequestFormatRequestUsingCurrentType atau WdfRequestWdmFormatUsingStackLocation, hanya bidang IoStatus dalam struktur parameter penyelesaian yang valid.

CompletionRoutine driver KMDF dapat berjalan di IRQL <= DISPATCH_LEVEL terlepas dari ExecutionLevel yang ditentukan dalam struktur WDF_OBJECT_ATTRIBUTES untuk objek permintaan I/O.

Contoh

Jenis fungsi dideklarasikan dalam Wdfrequest.h, sebagai berikut.

typedef VOID
  (EVT_WDF_REQUEST_COMPLETION_ROUTINE)(
    IN WDFREQUEST  Request,
    IN WDFIOTARGET  Target,
    IN PWDF_REQUEST_COMPLETION_PARAMS  Params,
    IN WDFCONTEXT  Context
    );

Untuk menentukan fungsi panggilan balik CompletionRoutine yang bernama MyCompletionRoutine, Anda harus terlebih dahulu memberikan deklarasi fungsi yang diperlukan SDV dan alat verifikasi lainnya, sebagai berikut:

EVT_WDF_REQUEST_COMPLETION_ROUTINE  MyCompletionRoutine;

Kemudian, terapkan fungsi panggilan balik Anda sebagai berikut:

VOID
 MyCompletionRoutine (
    IN WDFREQUEST  Request,
    IN WDFIOTARGET  Target,
    IN PWDF_REQUEST_COMPLETION_PARAMS  Params,
    IN WDFCONTEXT  Context
    )
  {...}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfrequest.h (termasuk Wdf.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

WDF_REQUEST_COMPLETION_PARAMS

WdfRequestSetCompletionRoutine