Gunakan Kembali Objek Permintaan Kerangka Kerja

Untuk meningkatkan performa, driver berbasis kerangka kerja yang membuat dan mengirim banyak permintaan asinkron yang hampir identik ke target I/O dapat menggunakan kembali objek permintaan alih-alih membuat objek permintaan baru untuk setiap permintaan. Driver dapat menggunakan kembali objek permintaan setelah permintaan selesai.

Jika driver telah membuat objek permintaan dengan memanggil WdfRequestCreate atau WdfRequestCreateFromIrp, driver dapat menggunakan kembali permintaan dengan memanggil WdfRequestReuse. Driver juga dapat menggunakan kembali objek permintaan yang telah diterimanya dari kerangka kerja dalam antrean I/O-nya, tetapi tidak dapat mengubah IRP yang dimuat objek permintaan yang diterima.

Jika Anda berhati-hati untuk menghindari situasi yang menyebabkan nilai pengembalian yang tidak berhasil yang dijelaskan dalam WdfRequestReuse, driver Anda dapat memanggil WdfRequestReuse dari dalam fungsi panggilan balik CompletionRoutine . (Fungsi panggilan balik CompletionRoutine memiliki nilai pengembalian VOID dan karenanya tidak dapat melaporkan kesalahan.)

Jika driver Anda menyediakan fungsi panggilan balik CompletionRoutine untuk objek permintaan yang digunakan kembali, driver harus memanggil WdfRequestSetCompletionRoutine setelah memanggil WdfRequestReuse.