Partager via


IWDFIoRequest2 ::Requeue, 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 Requeue retourne une requête d’E/S à la tête de la file d’attente d’E/S à partir de laquelle elle a été remise au pilote.

Syntaxe

HRESULT Requeue();

Valeur de retour

requeue retourne S_OK si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Retourner le code 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 fonction de rappel. Le segment obtient une requête d’E/S à partir de l’E/S, puis retourne la requête à 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;
...
}

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

IWDFIoQueue ::RetrieveNextRequest

IWDFIoRequest2