Freigeben über


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. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. 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.

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.

Bemerkungen

Der Treiber muss die E/A-Anforderung besitzen und die Anforderung von einer seiner E/A-Warteschlangen erhalten haben.

Die Quell- und Zielwarteschlangen können nicht identisch sein. Mit anderen Worten: Der Treiber kann ForwardToIoQueue- nicht aufrufen, um eine Anforderung an die Warteschlange zurückzugeben, von der sie stammt. Um eine E/A-Anforderung an die E/A-Warteschlange zurückzugeben, aus der sie stammt, kann der Treiber IWDFIoRequest2::Requeueaufrufen.

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

Außerdem kann die ForwardToIoQueue--Methode keine Anforderung erneut anfordern, die der Treiber durch Aufrufen der IWDFIoQueue::RetrieveNextRequest-Methode abgerufen 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 ForwardToIoQueueaufgerufen 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 zu enthalten.

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
Mindest-UMDF-Version 1.5
Header- wudfddi.h (include Wudfddi.h)
DLL- WUDFx.dll

Siehe auch

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable