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 |