Méthode IWDFIoRequest2 ::GetStatus (wudfddi.h)
[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]
La méthode GetStatus retourne la status d’une demande d’E/S.
Syntaxe
HRESULT GetStatus();
Valeur de retour
GetStatus retourne une valeur de status de type HRESULT. Cette valeur indique la status actuelle de la demande d’E/S que représente l’interface IWDFIoRequest2.
Remarques
Un pilote peut appeler GetStatus après avoir appelé IWDFIoRequest ::Send pour envoyer une demande d’E/S à une cible d’E/S.
-
Si l’appel d’un pilote à Envoyer réussit, GetStatus retourne la valeur status définie par le pilote qui termine la requête spécifiée.
Si le pilote spécifie WDF_REQUEST_SEND_OPTION_SYNCHRONOUS pour une requête lorsqu’il appelle Send, le pilote peut appeler GetStatus (ou IWDFIoRequest ::GetCompletionParams) immédiatement après l’appel de Send.
Si le pilote ne spécifie pas WDF_REQUEST_SEND_OPTION_SYNCHRONOUS lorsqu’il appelle Send, il appelle généralement GetStatus (ou IWDFIoRequest ::GetCompletionParams) à partir d’une fonction de rappel IRequestCallbackRequestCompletion ::OnCompletion .
- Si l’appel d’un pilote à Envoyer échoue, Send retourne une valeur status que l’infrastructure a définie pour décrire l’échec. Le pilote peut appeler GetStatus (mais pasIWDFIoRequest ::GetCompletionParams) pour obtenir le status actuel de la requête, mais dans ce cas, GetStatus retourne le même code d’échec que Send retourné.
Exemples
L’exemple de code suivant envoie une demande d’E/S à une cible d’E/S. Si l’appel à Send réussit, l’exemple obtient l’interface IWDFIoRequest2, appelle GetStatus pour obtenir la valeur status de la requête, puis appelle IWDFIoRequest ::CompleteWithInformation pour terminer la demande d’E/S.
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);
}
...
Configuration requise
Condition requise | Valeur |
---|---|
Fin de la prise en charge | Non disponible dans UMDF 2.0 et versions ultérieures. |
Plateforme cible | Desktop (Expérience utilisateur) |
Version UMDF minimale | 1,9 |
En-tête | wudfddi.h (inclure Wudfddi.h) |
DLL | WUDFx.dll |
Voir aussi
IRequestCallbackRequestCompletion ::OnCompletion
IWDFIoRequest ::CompleteWithInformation