Fungsi WdfRequestReuse (wdfrequest.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfRequestReuse menginisialisasi ulang objek permintaan kerangka kerja sehingga dapat digunakan kembali.
Sintaks
NTSTATUS WdfRequestReuse(
[in] WDFREQUEST Request,
[in] PWDF_REQUEST_REUSE_PARAMS ReuseParams
);
Parameter
[in] Request
Handel ke objek permintaan kerangka kerja.
[in] ReuseParams
Penunjuk ke struktur WDF_REQUEST_REUSE_PARAMS yang dialokasikan penelepon.
Nilai kembali
WdfRequestReuse mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Parameter input tidak valid. |
|
Driver menyediakan IRP dalam struktur WDF_REQUEST_REUSE_PARAMS , tetapi objek permintaan yang ditentukan tidak diperoleh dari WdfRequestCreateFromIrp. |
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Driver berbasis kerangka kerja dapat menggunakan kembali objek permintaan kerangka kerja yang dibuat oleh panggilan sebelumnya ke WdfRequestCreate atau WdfRequestCreateFromIrp. Driver juga dapat menggunakan kembali objek permintaan yang telah mereka terima dari kerangka kerja, tetapi mereka tidak dapat mengatur bendera WDF_REQUEST_REUSE_SET_NEW_IRP untuk objek permintaan tersebut.
Catatan
Driver harus berhati-hati saat menggunakan kembali objek permintaan yang diterima dari kerangka kerja. Menggunakan kembali permintaan tersebut mengatur ulang bendera pembatalan IRP yang mendasar dan dapat mencegah driver panggilan membatalkan permintaan.
Driver dapat menggunakan kembali objek permintaan setelah permintaan asli selesai. Setelah driver memanggil WdfRequestReuse, konten permintaan harus diinisialisasi ulang. Driver dapat menentukan beberapa parameter permintaan dalam struktur WDF_REQUEST_REUSE_PARAMS .
Jika Anda ingin permintaan yang digunakan kembali memiliki fungsi panggilan balik CompletionRoutine , driver harus memanggil WdfRequestSetCompletionRoutine setelah memanggil WdfRequestReuse.
Untuk informasi selengkapnya tentang WdfRequestReuse, lihat Menggunakan Kembali Objek Permintaan Kerangka Kerja.
Contoh
Contoh kode berikut adalah bagian dari fungsi panggilan balik CompletionRoutine yang memanggil WdfRequestReuse sehingga driver dapat menggunakan kembali permintaan yang dialokasikan driver.
VOID
MyRequestCompletionRoutine(
IN WDFREQUEST Request,
IN WDFIOTARGET Target,
PWDF_REQUEST_COMPLETION_PARAMS CompletionParams,
IN WDFCONTEXT Context
)
{
WDF_REQUEST_REUSE_PARAMS params;
NTSTATUS status;
...
WDF_REQUEST_REUSE_PARAMS_INIT(
¶ms,
WDF_REQUEST_REUSE_NO_FLAGS,
STATUS_SUCCESS
);
status = WdfRequestReuse(
Request,
¶ms
);
ASSERT(NT_SUCCESS(status));
...
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfrequest.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqSendFail(kmdf) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk