Partager via


IWDFIoRequest2 ::GetRequestorMode, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer avec UMDF.]

La méthode GetRequestorMode indique si une requête d’E/S provient d’un pilote en mode noyau ou d’un composant en mode utilisateur (une application ou un pilote en mode utilisateur).

Syntaxe

WDF_KPROCESSOR_MODE GetRequestorMode();

Valeur de retour

GetRequestorMode retourne une valeur WDF_KPROCESSOR_MODE-typée qui indique si la requête d’E/S actuelle provient d’un pilote en mode noyau ou d’un composant en mode utilisateur.

Remarques

Un pilote UMDF peut recevoir une requête d’E/S à partir d’un pilote en mode noyau uniquement si le pilote UMDF prend en charge clients en mode noyau.

Si GetRequestorMode retourne WdfUserMode, le pilote peut appeler IWDFIoRequest2 ::IsFromUserModeDriver pour déterminer si la requête d’E/S provient d’une application ou d’un pilote en mode utilisateur.

Exemples

L’exemple de code suivant montre comment une fonction de rappel IQueueCallbackWrite ::OnWrite fonction de rappel peut déterminer si une requête d’E/S provient du mode noyau ou du mode utilisateur. Si la demande provient du mode utilisateur, l’exemple détermine si la requête provient d’une application ou d’un autre pilote en mode utilisateur.

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

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.9
d’en-tête wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFIoRequest2

IWDFIoRequest2 ::IsFromUserModeDriver