Поделиться через


Функция IofCompleteRequest (wdm.h)

Макрос IoCompleteRequest указывает, что вызывающий объект завершил всю обработку для заданного запроса ввода-вывода и возвращает заданное IRP диспетчеру ввода-вывода.

IoCompleteRequest заключает iofCompleteRequest в оболочку.

Синтаксис

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

Параметры

Irp

Указатель на IRP для завершения.

PriorityBoost

Указывает определяемую системой константу CCHAR, на которую увеличивается приоритет времени выполнения исходного потока, запрашивающего операцию. Это значение IO_NO_INCREMENT, если исходный поток запросил операцию, драйвер мог быстро завершить (поэтому запрашивающий поток не получает компенсацию за предполагаемое ожидание завершения ввода-вывода), или если IRP завершается с ошибкой. В противном случае набор констант PriorityBoost зависит от типа устройства. Эти константы см. в разделе Ntddk.h или Wdm.h.

Возвращаемое значение

None

Remarks

Когда драйвер завершил всю обработку для заданного IRP, он вызывает IoCompleteRequest. Диспетчер ввода-вывода проверяет IRP, чтобы определить, настроили ли какие-либо драйверы более высокого уровня подпрограмму IoCompletion для IRP. В этом случае каждая подпрограмма IoCompletion вызывается, в свою очередь, до тех пор, пока каждый многоуровневый драйвер в цепочке не завершит IRP.

Когда все драйверы завершили выполнение заданного IRP, диспетчер операций ввода-вывода возвращает состояние исходному инициатору запроса операции. Обратите внимание, что драйвер более высокого уровня, который настраивает IRP, созданный драйвером, должен предоставить подпрограмму IoCompletion , чтобы освободить созданную им IRP.

Никогда не вызывайте IoCompleteRequest при удержании спин-блокировки. Попытка завершить IRP с удержанием спин-блокировки может привести к взаимоблокировкам.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Правила соответствия 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)

См. также раздел

IoSetCompletionRoutine