Partager via


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é.
Pour plus d’informations sur la saisie semi-automatique des demandes, consultez Fin des requêtes d’E/S.

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

IWDFIoRequest2

IWDFIoRequest ::CompleteWithInformation

IWDFIoRequest ::GetCompletionParams

IWDFIoRequest ::Send