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. 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 Requeue-Methode gibt eine E/A-Anforderung an den Kopf der E/A-Warteschlange zurück, von der sie an den Treiber ü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 die E/A-Anforderung nicht.
  • Die Anforderung kann abgebrochen werden.
  • Die Verteilmethode der Warteschlange ist nicht manuell.
 

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

Hinweise

Ein Treiber kann requeue nur aufrufen, wenn er die manuelle Verteilmethode für die E/A-Warteschlange verwendet.

Beispiele

Das folgende Codebeispiel zeigt ein Segment einer IQueueCallbackStateChange::OnStateChange-Rückruffunktion . Das Segment ruft eine E/A-Anforderung von der E/A-Anforderung ab und gibt die Anforderung dann 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
UMDF-Mindestversion 1.9
Kopfzeile wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Weitere Informationen

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest2