Freigeben über


WdfDeviceWdmDispatchIrpToIoQueue-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

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

Syntax

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

Die Parameter

[in] Device

Ein Handle zu einem Framework-Geräteobjekt.

[in] Irp

Ein Zeiger auf eine IRP-Struktur.

[in] Queue

Ein Handle zu einem Framework-Warteschlangenobjekt.

[in] Flags

Ein bitweises ODER von WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS-typierten 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 EvtDeviceWdmIrpDispatch oder die EvtDeviceWdmIrpPreprocess Rückruffunktion verwenden, die WdfDeviceWdmDispatchIrpToIoQueueaufgerufen hat.

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

Bemerkungen

Ein Treiber ruft WdfDeviceWdmDispatchIrpToIoQueue auf, um eine Zielwarteschlange für ein eingehendes IRP anzugeben.

Der Treiber kann diese Methode aus der EvtDeviceWdmIrpPreprocess Rückrufroutine oder aus der EvtDeviceWdmIrpDispatch Callback aufrufen.

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

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

Anforderungen

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

Siehe auch

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess