IWDFIoRequest2 ::GetStatus, 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 GetStatus retourne l’état d’une requête d’E/S.
Syntaxe
HRESULT GetStatus();
Valeur de retour
GetStatus retourne une valeur d’état typée HRESULT, cette valeur indique l’état actuel de la demande d’E/S que l’interface IWDFIoRequest2 représente.
Remarques
Un pilote peut appeler GetStatus une fois qu’il a 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 d’état 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 demande lorsqu’il appelle Envoyer, le pilote peut appeler GetStatus (ou IWDFIoRequest ::GetCompletionParams) immédiatement après l’appel Envoyer.
Si le pilote ne spécifie pas WDF_REQUEST_SEND_OPTION_SYNCHRONOUS lorsqu’il appelle Envoyer, le pilote appelle généralement GetStatus (ou IWDFIoRequest ::GetCompletionParams) à partir d’une fonction de rappel IRequestCallbackRequestCompletion ::OnCompletion fonction de rappel.
- Si l’appel d’un pilote à Envoyer échoue, Envoyer retourne une valeur d’état que l’infrastructure a définie pour décrire l’échec. Le pilote peut appeler getStatus (mais pasIWDFIoRequest ::GetCompletionParams) pour obtenir l’état actuel de la requête, mais dans ce cas GetStatus retourne le même code d’échec que celui qui Envoyer retourné.
Exemples
L’exemple de code suivant envoie une requête d’E/S à une cible d’E/S. Si l’appel à Envoyer réussit, l’exemple obtient l’interface IWDFIoRequest2, appelle GetStatus pour obtenir la valeur d’état de la requête, puis appelle IWDFIoRequest ::CompleteWithInformation pour terminer la requête 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);
}
...
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
IRequestCallbackRequestCompletion ::OnCompletion
IWDFIoRequest ::CompleteWithInformation