Metodo IWDFIoRequest2::GetRequestorMode (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]

Il metodo GetRequestorMode indica se una richiesta di I/O proviene da un driver in modalità kernel o da un componente in modalità utente (un'applicazione o un driver in modalità utente).

Sintassi

WDF_KPROCESSOR_MODE GetRequestorMode();

Valore restituito

GetRequestorMode restituisce un valore tipizzato WDF_KPROCESSOR_MODE che indica se la richiesta di I/O corrente proviene da un driver in modalità kernel o da un componente in modalità utente.

Commenti

Un driver basato su UMDF può ricevere una richiesta di I/O da un driver in modalità kernel solo se il driver basato su UMDF supporta i client in modalità kernel.

Se GetRequestorMode restituisceWdfUserMode, il driver può chiamare IWDFIoRequest2::IsFromUserModeDriver per determinare se la richiesta di I/O proviene da un'applicazione o da un driver in modalità utente.

Esempio

L'esempio di codice seguente mostra come una funzione di callback IQueueCallbackWrite::OnWrite può determinare se una richiesta di I/O proviene dalla modalità kernel o dall'utente. Se la richiesta proviene dalla modalità utente, l'esempio determina se la richiesta proviene da un'applicazione o da un altro driver in modalità utente.

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();
    }
...
}

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1,9
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver