IofCompleteRequest-Funktion (wdm.h)
Das IoCompleteRequest Makro gibt an, dass der Aufrufer die gesamte Verarbeitung einer bestimmten E/A-Anforderung abgeschlossen hat und das angegebene IRP an den E/A-Manager zurückgibt.
IoCompleteRequest umschließt IofCompleteRequest-.
Syntax
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
Parameter
Irp
Zeiger auf das zu durchlaufende IRP.
PriorityBoost
Gibt eine vom System definierte CCHAR-Konstante an, um die Laufzeitpriorität des ursprünglichen Threads zu erhöhen, der den Vorgang angefordert hat. Dieser Wert ist IO_NO_INCREMENT, wenn der ursprüngliche Thread einen Vorgang angefordert hat, den der Treiber schnell abschließen konnte (sodass der anfordernde Thread nicht für die angenommene Wartezeit auf den Abschluss von E/A kompensiert wird) oder wenn der IRP mit einem Fehler abgeschlossen wurde. Andernfalls sind die PriorityBoost- Konstanten gerätetypspezifisch. Diese Konstanten finden Sie unter Ntddk.h oder Wdm.h.
Rückgabewert
Nichts
Bemerkungen
Wenn ein Treiber die gesamte Verarbeitung für ein bestimmtes IRP abgeschlossen hat, ruft er IoCompleteRequestauf. Der I/O-Manager überprüft das IRP, um zu ermitteln, ob höhere Treiber eine IoCompletion- Routine für das IRP eingerichtet haben. Wenn ja, wird jede IoCompletion- Routine wiederum aufgerufen, bis jeder layerierte Treiber in der Kette das IRP abgeschlossen hat.
Wenn alle Treiber ein bestimmtes IRP abgeschlossen haben, gibt der E/A-Manager den Status an den ursprünglichen Anforderer des Vorgangs zurück. Beachten Sie, dass ein höherer Treiber, der ein vom Treiber erstelltes IRP einrichte, eine IoCompletion- Routine bereitstellen muss, um das erstellte IRP freizugeben.
Rufen Sie niemals IoCompleteRequest- auf, während Sie eine Drehungssperre halten. Wenn Sie versuchen, ein IRP abzuschließen, während Sie eine Drehsperre halten, können Deadlocks verursacht werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wd), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm) |