IWDFIoRequest2::GetStatus-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 in neueren 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 GetStatus-Methode gibt den status einer E/A-Anforderung zurück.

Syntax

HRESULT GetStatus();

Rückgabewert

GetStatus gibt einen HRESULT-typisierten status Wert zurück. Dieser Wert gibt den aktuellen status der E/A-Anforderung an, die die IWDFIoRequest2-Schnittstelle darstellt.

Hinweise

Ein Treiber kann GetStatus aufrufen, nachdem er IWDFIoRequest::Send aufgerufen hat, um eine E/A-Anforderung an ein E/A-Ziel zu senden.

  • Wenn der Aufruf eines Treibers an Send erfolgreich ist, gibt GetStatus den status Wert zurück, der vom Treiber festgelegt wird, der die angegebene Anforderung abschließt.

    Wenn der Treiber beim Aufrufen von Send WDF_REQUEST_SEND_OPTION_SYNCHRONOUS für eine Anforderung angibt, kann der Treiber GetStatus (oder IWDFIoRequest::GetCompletionParams) unmittelbar nach dem Aufruf von Send aufrufen.

    Wenn der Treiber beim Aufrufen von Send WDF_REQUEST_SEND_OPTION_SYNCHRONOUS nicht angibt, ruft der Treiber in der Regel GetStatus (oder IWDFIoRequest::GetCompletionParams) aus einer IRequestCallbackRequestCompletion::OnCompletion-Rückruffunktion auf.

  • Wenn der Aufruf eines Treibers an Send fehlschlägt, gibt Send einen status Wert zurück, den das Framework zur Beschreibung des Fehlers festgelegt hat. Der Treiber kann GetStatus (aber nichtIWDFIoRequest::GetCompletionParams) aufrufen, um die aktuelle status der Anforderung abzurufen. In diesem Fall gibt GetStatus jedoch denselben Fehlercode zurück, den Send zurückgegeben hat.
Weitere Informationen zum Abschluss der Anforderung finden Sie unter Abschließen von E/A-Anforderungen.

Beispiele

Im folgenden Codebeispiel wird eine E/A-Anforderung an ein E/A-Ziel gesendet. Wenn der Aufruf von Send erfolgreich ist, ruft das Beispiel die IWDFIoRequest2-Schnittstelle ab, ruft GetStatus auf, um den status Wert der Anforderung abzurufen, und ruft dann IWDFIoRequest::CompleteWithInformation auf, um die E/A-Anforderung abzuschließen.

HRESULT hrSend = S_OK;
...
hrSend = fxRequest->Send(m_pIoTarget,
                         WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
                         0);
if (SUCCEEDED(hrSend))
{
    //
    // If send succeeded, complete the request and specify 
    // the current status value.
    //
    CComQIPtr<IWDFIoRequest2> fxRequest2 = fxRequest;
    hrSend = fxRequest2->GetStatus();
    fxRequest->CompleteWithInformation(hrSend, 0);
}
...

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

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send