Partager via


Méthode IWDFIoRequest2 ::Requeue (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 Requeue renvoie une demande d’E/S au début de la file d’attente d’E/S à partir de laquelle elle a été remise au pilote.

Syntaxe

HRESULT Requeue();

Valeur de retour

La mise en file d’attente retourne S_OK si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
HRESULT_FROM_WIN32 (ERROR_INVALID_OPERATION)
Cette valeur est retournée si l’une des opérations suivantes se produit :
  • La demande d’E/S spécifiée ne provient pas d’une file d’attente d’E/S.
  • Le pilote ne possède pas la demande d’E/S.
  • La demande est annulable.
  • La méthode de répartition de la file d’attente n’est pas manuelle.
 

Cette méthode peut retourner l’une des autres valeurs que Winerror.h contient.

Remarques

Un pilote peut appeler Requeue uniquement s’il utilise la méthode de répartition manuelle pour la file d’attente d’E/S.

Exemples

L’exemple de code suivant montre un segment d’une fonction de rappel IQueueCallbackStateChange ::OnStateChange . Le segment obtient une demande d’E/S à partir de l’E/S, puis retourne la demande à la file d’attente.

void 
CMyQueue::OnStateChange(
    __in IWDFIoQueue* pWdfQueue,
    __in WDF_IO_QUEUE_STATE 
    )
{
    HRESULT hr;
    IWDFIoRequest* Request;
...
    //
    // Get the IWDFIoRequest interface of the next request.
    //
    hr = pWdfQueue->RetrieveNextRequest(&Request);
...
    //
    // Declare an IWDFIoRequest2 interface pointer and obtain the
    // IWDFIoRequest2 interface from the IWDFIoRequest interface.
    //
    CComQIPtr<IWDFIoRequest2> r2 = Request;

    //
    // Add code here to determine whether to process or requeue the request.
    //
...
    //
    // Requeue the request.
    //
    hr = r2->Requeue();
    if (FAILED(hr)) goto Error;
...
}

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

IWDFIoQueue ::RetrieveNextRequest

IWDFIoRequest2