Freigeben über


IWDFIoRequest2::Requeue-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 Requeue Methode gibt eine E/A-Anforderung an den Kopf der E/A-Warteschlange zurück, aus der sie an den Fahrer übermittelt wurde.

Syntax

HRESULT Requeue();

Rückgabewert

Requeue gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
HRESULT_FROM_WIN32 (ERROR_INVALID_OPERATION)
Dieser Wert wird zurückgegeben, wenn einer der folgenden Aktionen auftritt:
  • Die angegebene E/A-Anforderung stammt nicht aus einer E/A-Warteschlange.
  • Der Treiber besitzt nicht die E/A-Anforderung.
  • Die Anforderung kann abgebrochen werden.
  • Die Verteilermethode der Warteschlange ist nicht manuell.
 

Diese Methode gibt möglicherweise einen der anderen Werte zurück, die Winerror.h enthält.

Bemerkungen

Ein Treiber kann Requeue nur aufrufen, wenn die manuelle Verteilermethode für die E/A-Warteschlange verwendet wird.

Beispiele

Das folgende Codebeispiel zeigt ein Segment eines IQueueCallbackStateChange::OnStateChange Rückruffunktion. Das Segment ruft eine E/A-Anforderung aus der E/A ab und gibt dann die Anforderung an die Warteschlange zurück.

void 
CMyQueue::OnStateChange(
    __in IWDFIoQueue* pWdfQueue,
    __in WDF_IO_QUEUE_STATE 
    )
{
    HRESULT hr;
    IWDFIoRequest* Request;
...
    //
    // Get the IWDFIoRequest interface of the next request.
    //
    hr = pWdfQueue->RetrieveNextRequest(&Request);
...
    //
    // Declare an IWDFIoRequest2 interface pointer and obtain the
    // IWDFIoRequest2 interface from the IWDFIoRequest interface.
    //
    CComQIPtr<IWDFIoRequest2> r2 = Request;

    //
    // Add code here to determine whether to process or requeue the request.
    //
...
    //
    // Requeue the request.
    //
    hr = r2->Requeue();
    if (FAILED(hr)) goto Error;
...
}

Anforderungen

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

Siehe auch

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest2-