Freigeben über


WdfDeviceWdmDispatchIrpToIoQueue-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceWdmDispatchIrpToIoQueue-Methode leitet den IRP an eine angegebene E/A-Warteschlange weiter.

Syntax

NTSTATUS WdfDeviceWdmDispatchIrpToIoQueue(
  [in] WDFDEVICE Device,
  [in] PIRP      Irp,
  [in] WDFQUEUE  Queue,
  [in] ULONG     Flags
);

Parameter

[in] Device

Ein Handle für ein Framework-Geräteobjekt.

[in] Irp

Ein Zeiger auf eine IRP-Struktur.

[in] Queue

Ein Handle für ein Framework-Warteschlangenobjekt.

[in] Flags

Ein bitweiser OR mit WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS typisierten Flags.

Rückgabewert

Die WdfDeviceWdmDispatchIrpToIoQueue-Methode gibt einen NTSTATUS-Wert zurück, den das Framework oder der Treiber als Ergebnis der Verarbeitung des IRP bereitstellt. Der Treiber muss diesen Rückgabewert als Rückgabewert für die Rückruffunktion EvtDeviceWdmIrpDispatch oder evtDeviceWdmIrpPreprocess verwenden, die WdfDeviceWdmDispatchIrpToIoQueue aufgerufen hat.

Eine Fehlerüberprüfung tritt auf, wenn ein KMDF-Treiber ein ungültiges Objekthandle bereitstellt. Wenn ein UMDF-Treiber ein ungültiges Handle bereitstellt, wird der Treiberhostprozess beendet.

Hinweise

Ein Treiber ruft WdfDeviceWdmDispatchIrpToIoQueue auf, um eine Zielwarteschlange für einen eingehenden IRP anzugeben.

Der Treiber kann diese Methode über seine EvtDeviceWdmIrpPreprocess-Rückrufroutine oder über seinen EvtDeviceWdmIrpDispatch-Rückruf aufrufen.

Wenn der Treiber WdfDeviceWdmDispatchIrpToIoQueue innerhalb einer EvtDeviceWdmIrpPreprocess-Rückruffunktion aufruft , muss der Treiber entweder IoSkipCurrentIrpStackLocation oder IoCopyCurrentIrpStackToNext aufrufen, bevor WdfDeviceWdmDispatchIrpToIoQueue aufgerufen wird.

Weitere Informationen zum Angeben von Warteschlangen für IRPs finden Sie unter Senden von IRPs an E/A-Warteschlangen.

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.11
UMDF-Mindestversion 2.17
Kopfzeile wdfdevice.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), FwdIrpToIoQueueValid(kmdf)

Weitere Informationen

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess