Функция IofCompleteRequest (wdm.h)
Макрос IoCompleteRequest указывает, что вызывающий объект завершил всю обработку для заданного запроса ввода-вывода и возвращает заданный IRP диспетчеру ввода-вывода.
IoCompleteRequest упаковывает IofCompleteRequest.
Синтаксис
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
Параметры
Irp
Указатель на завершение IRP.
PriorityBoost
Указывает системную константу CCHAR, с помощью которой следует увеличить приоритет времени выполнения исходного потока, запрашивающего операцию. Это значение IO_NO_INCREMENT, если исходный поток запрашивал операцию, драйвер может быстро завершить (поэтому запрашивающий поток не компенсируется предполагаемому ожиданию завершения ввода-вывода) или если IRP завершен с ошибкой. В противном случае набор констант priorityBoost priorityBoost зависит от типа устройства. Сведения об этих константах см. в ntddk.h или Wdm.h.
Возвращаемое значение
Никакой
Замечания
Когда драйвер завершил всю обработку для заданного IRP, он вызывает IoCompleteRequest. Диспетчер операций ввода-вывода проверяет IRP, чтобы определить, настроили ли драйверы более высокого уровня IoCompletion подпрограмму для IRP. Если это так, каждый IoCompletion подпрограмма вызывается, в свою очередь, пока каждый слойный драйвер в цепочке не завершит IRP.
Когда все драйверы завершили заданный IRP, диспетчер ввода-вывода возвращает состояние исходному запрашивающему объекту операции. Обратите внимание, что драйвер более высокого уровня, который настраивает созданный драйвером IRP, должен предоставить процедуру IoCompletion, чтобы освободить созданный IRP.
Никогда не вызывайте IoCompleteRequest удерживая спин-блокировку. Попытка завершить IRP при удержании блокировки спина может привести к взаимоблокировкам.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include 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) |