Freigeben über


EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS Rückruffunktion (wdfio.h)

[Gilt nur für KMDF]

Die EvtIoWdmIrpForForwardProgress-Rückruffunktion eines Treibers untersucht ein E/A-Anforderungspaket (IRP) und bestimmt, ob ein reserviertes Anforderungsobjekt zum Verarbeiten der E/A-Anforderung oder zum Fehlschlagen der E/A-Anforderung verwendet werden soll.

Syntax

EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS EvtWdfIoWdmIrpForForwardProgress;

WDF_IO_FORWARD_PROGRESS_ACTION EvtWdfIoWdmIrpForForwardProgress(
  [in] WDFQUEUE Queue,
  [in] PIRP Irp
)
{...}

Parameter

[in] Queue

Ein Handle für ein E/A-Warteschlangenobjekt.

[in] Irp

Ein Zeiger auf eine IRP-Struktur.

Rückgabewert

Die Rückruffunktion EvtIoWdmIrpForForwardProgress muss einen WDF_IO_FORWARD_PROGRESS_ACTION typisierten Wert zurückgeben.

Hinweise

Ein Treiber kann eine EvtIoWdmIrpForForwardProgress-Rückruffunktion registrieren, wenn er WdfIoQueueAssignForwardProgressPolicy aufruft.

Wenn Ihr Treiber eine EvtIoWdmIrpForForwardProgress-Rückruffunktion registriert, ruft das Framework die Funktion auf, wenn alle der folgenden Bedingungen vorhanden sind:

  • Das Framework hat ein E/A-Anforderungspaket (IRP) erhalten, das der E/A-Manager an den Treiber sendet.
  • Das Framework hat versucht, ein Anforderungsobjekt für das IRP zu erstellen, aber der Versuch ist fehlgeschlagen.
  • Der Treiber hat den garantierten Vorwärtsfortschritt für die E/A-Warteschlange aktiviert, die das Anforderungsobjekt empfangen soll, wobei der Richtlinientyp auf WdfIoForwardProgressReservedPolicyUseExamine festgelegt ist.
Das Framework übergibt den IRP an die Rückruffunktion EvtIoWdmIrpForForwardProgress . Die Rückruffunktion muss den IRP untersuchen und bestimmen, ob das Framework eines seiner reservierten Anforderungsobjekte für das IRP verwenden soll, oder (wenn das IRP nicht wichtig ist, wenn der verfügbare Arbeitsspeicher des Computers nicht ausreicht) die E/A-Anforderung ohne Übermittlung an den Treiber fehlschlägt. Der Rückgabewert der Rückruffunktion gibt die Aktion an, die das Framework ausführen soll.

Weitere Informationen zur Rückruffunktion EvtIoWdmIrpForForwardProgress finden Sie unter Garantieren des Vorwärtsfortschritts von E/A-Vorgängen.

Diese Rückruffunktion kann unter IRQL <= DISPATCH_LEVEL aufgerufen werden. Wenn der IRQL PASSIVE_LEVEL ist, ruft das Framework die Rückruffunktion in einem kritischen Bereich auf.

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.9
Kopfzeile wdfio.h (einschließen von Wdf.h)
IRQL <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

EvtIoAllocateRequestResources

EvtIoAllocateResourcesForReservedRequest