Freigeben über


IWDFIoRequest2::GetRequestorMode-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 GetRequestorMode-Methode gibt an, ob eine E/A-Anforderung von einem Kernelmodustreiber oder einer Benutzermoduskomponente (entweder einer Anwendung oder einem Benutzermodustreiber) stammt.

Syntax

WDF_KPROCESSOR_MODE GetRequestorMode();

Rückgabewert

GetRequestorMode gibt einen WDF_KPROCESSOR_MODE typisierten Wert zurück, der angibt, ob die aktuelle E/A-Anforderung von einem Kernelmodustreiber oder einer Benutzermoduskomponente stammt.

Hinweise

Ein UMDF-basierter Treiber kann eine E/A-Anforderung von einem Kernelmodustreiber nur empfangen, wenn der UMDF-basierte Treiber Clients im Kernelmodus unterstützt.

Wenn GetRequestorModeWdfUserMode zurückgibt, kann der Treiber IWDFIoRequest2::IsFromUserModeDriver aufrufen, um zu bestimmen, ob die E/A-Anforderung von einer Anwendung oder einem Benutzermodustreiber stammt.

Beispiele

Das folgende Codebeispiel zeigt, wie eine IQueueCallbackWrite::OnWrite-Rückruffunktion bestimmen kann, ob eine E/A-Anforderung aus dem Kernel- oder Benutzermodus stammt. Wenn die Anforderung aus dem Benutzermodus stammt, bestimmt das Beispiel, ob die Anforderung von einer Anwendung oder einem anderen Benutzermodustreiber stammt.

VOID
STDMETHODCALLTYPE
  CMyQueue::OnWrite(
    __in IWDFIoQueue *pWdfQueue,
    __in IWDFIoRequest *pWdfRequest,
    __in SIZE_T BytesToWrite
    )
{
 WDF_KPROCESSOR_MODE processorMode;
    BOOL fromApp = FALSE;
    //
    // Declare an IWDFIoRequest2 interface pointer and obtain the
    // IWDFIoRequest2 interface from the IWDFIoRequest interface.
    //
    CComQIPtr<IWDFIoRequest2> r2 = pWdfRequest;

    processorMode = r2->GetRequestorMode();
    if (processorMode == WdfUserMode)
    {
        fromApp = r2->IsFromUserModeDriver();
    }
...
}

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

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver