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 |