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.
Sintaks
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
Parameter
Irp
Arahkan ke IRP yang akan diselesaikan.
PriorityBoost
Menentukan konstanta CCHAR yang ditentukan sistem untuk menambah 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.
Nilai kembali
Tidak ada
Keterangan
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 rutinitas IoCompletion untuk IRP. Jika demikian, setiap rutinitas IoCompletion 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 rutinitas IoCompletion untuk merilis IRP yang dibuatnya.
Jangan pernah memanggil IoCompleteRequest sambil memegang kunci putar. Mencoba menyelesaikan IRP sambil memegang kunci putar dapat menyebabkan kebuntuan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | 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), WmiComplete(wdm) |