IWDFIoRequest::ForwardToIoQueue-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]

Die ForwardToIoQueue-Methode leitet eine E/A-Anforderung an eine der E/A-Warteschlangen des aufrufenden Treibers weiter(d. h. wiederholt).

Syntax

HRESULT ForwardToIoQueue(
  [in] IWDFIoQueue *pDestination
);

Parameter

[in] pDestination

Ein Zeiger auf die IWDFIoQueue-Schnittstelle für das Zielwarteschlangenobjekt.

Rückgabewert

ForwardToIoQueue gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode einen der Fehlercodes zurück, die in Winerror.h definiert sind.

Hinweise

Der Treiber muss besitzer der E/A-Anforderung sein und die Anforderung aus einer seiner E/A-Warteschlangen abgerufen haben.

Quell- und Zielwarteschlange können nicht identisch sein. Anders ausgedrückt: Der Treiber kann ForwardToIoQueue nicht aufrufen, um eine Anforderung an die Warteschlange zurückzugeben, aus der er stammt. Um eine E/A-Anforderung an die E/A-Warteschlange zurückzugeben, aus der sie stammt, kann der Treiber IWDFIoRequest2::Requeue aufrufen.

Sowohl die Quell- als auch die Zielwarteschlange müssen zum gleichen Gerät gehören.

Außerdem kann die ForwardToIoQueue-Methode keine Anforderung erneut queue stellen, die der Treiber durch Aufrufen der IWDFIoQueue::RetrieveNextRequest-Methode erhalten hat.

Die Anforderung kann nicht abgebrochen werden. Wenn der Treiber zuvor die IWDFIoRequest::MarkCancelable-Methode aufgerufen hat, um die Anforderung abzubrechen, muss der Treiber die IWDFIoRequest::UnmarkCancelable-Methode aufrufen, bevor ForwardToIoQueue aufgerufen wird.

Beispiele

Das folgende Codebeispiel zeigt, wie eine Anforderung an eine andere Warteschlange weitergeleitet wird, wenn der Puffer der Anforderung nicht ausreicht, um die erforderlichen Informationen aufzunehmen.

HRESULT hr;
 if (OutputBufferSizeInBytes < sizeof(SWITCH_STATE)) {
    hr = HRESULT_FROM_NT(ERROR_INSUFFICIENT_BUFFER);
 }
 else {
     hr = FxRequest->ForwardToIoQueue(
                          m_Device->GetSwitchChangeQueue()
                          );
     if (SUCCEEDED(hr)) {
         completeRequest = false;
     }
  }

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.5
Kopfzeile wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Weitere Informationen

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable