Partager via


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é.
Pour plus d’informations sur l’achèvement des demandes, consultez Achèvement des demandes d’E/S.

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

IWDFIoRequest2

IWDFIoRequest ::CompleteWithInformation

IWDFIoRequest ::GetCompletionParams

IWDFIoRequest ::Send