Fungsi IofCompleteRequest (wdm.h)
Makro IoCompleteRequest menunjukkan bahwa pemanggil telah menyelesaikan semua pemrosesan untuk permintaan I/O tertentu dan mengembalikan IRP yang diberikan ke manajer I/O.
IoCompleteRequest membungkus IofCompleteRequest.
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
Irp
Penunjuk ke IRP yang akan diselesaikan.
PriorityBoost
Menentukan konstanta CCHAR yang ditentukan sistem untuk menaikkan prioritas run-time dari utas asli yang meminta operasi. Nilai ini IO_NO_INCREMENT jika utas asli meminta operasi yang dapat diselesaikan driver dengan cepat (sehingga utas yang meminta tidak dikompensasi karena diasumsikan menunggu I/O selesai) atau jika IRP selesai dengan kesalahan. Jika tidak, kumpulan konstanta PriorityBoost khusus untuk jenis perangkat. Lihat Ntddk.h atau Wdm.h untuk konstanta ini.
Tidak
Ketika driver telah menyelesaikan semua pemrosesan untuk IRP tertentu, driver memanggil IoCompleteRequest. Manajer I/O memeriksa IRP untuk menentukan apakah ada driver tingkat yang lebih tinggi telah menyiapkan IoCompletion rutin untuk IRP. Jika demikian, setiap IoCompletion rutin dipanggil, pada gilirannya, sampai setiap driver berlapis dalam rantai telah menyelesaikan IRP.
Ketika semua driver telah menyelesaikan IRP tertentu, manajer I/O mengembalikan status ke pemohon asli operasi. Perhatikan bahwa driver tingkat lebih tinggi yang menyiapkan IRP yang dibuat driver harus menyediakan IoCompletion rutin untuk merilis IRP yang dibuatnya.
Jangan pernah memanggil IoCompleteRequest sambil memegang kunci putar. Mencoba menyelesaikan IRP sambil memegang kunci putar dapat menyebabkan kebuntuan.
Syarat | Nilai |
---|---|
klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Platform Target | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
aturan kepatuhan DDI | CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDDIs (storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComp lete(wdm) |