Partager via


énumération WDF_DEVICE_IO_BUFFER_RETRIEVAL (wudfddi_types.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.]

L’énumération WDF_DEVICE_IO_BUFFER_RETRIEVAL est utilisée pour spécifier quand UMDF rend les mémoires tampons d’une requête d’E/S disponibles pour le pilote.

Syntax

typedef enum _WDF_DEVICE_IO_BUFFER_RETRIEVAL {
  WdfDeviceIoBufferRetrievalInvalid,
  WdfDeviceIoBufferRetrievalCopyImmediately,
  WdfDeviceIoBufferRetrievalDeferred,
  WdfDeviceIoBufferRetrievalMaximum
} WDF_DEVICE_IO_BUFFER_RETRIEVAL, *PWDF_DEVICE_IO_BUFFER_RETRIEVAL;

Constantes

 
WdfDeviceIoBufferRetrievalInvalid
Réservé pour le système.
WdfDeviceIoBufferRetrievalCopyImmediately
UMDF met les mémoires tampons d’une requête d’E/S à la disposition du pilote (en les copiant dans le processus hôte du pilote UMDF) dès qu’UMDF reçoit la demande d’E/S. Pour plus d'informations, consultez la section Notes qui suit.
WdfDeviceIoBufferRetrievalDeferred
UMDF rend les mémoires tampons d’une requête d’E/S disponibles pour le pilote (en les copiant dans le processus hôte du pilote UMDF) uniquement lorsque le pilote tente d’accéder aux mémoires tampons. Pour plus d'informations, consultez la section Notes qui suit.
WdfDeviceIoBufferRetrievalMaximum
Réservé pour le système.

Remarques

L’énumération WDF_DEVICE_IO_BUFFER_RETRIEVAL est utilisée comme entrée dans IWDFDeviceInitialize2 ::SetIoTypePreference.

Dans les versions UMDF antérieures à la version 1.9, UMDF met toujours les mémoires tampons d’une requête d’E/S à la disposition du pilote (en copiant les mémoires tampons dans le processus hôte du pilote UMDF) dès qu’UMDF reçoit la demande d’E/S. IWDFIoRequest ::GetInputMemory et IWDFIoRequest ::GetOutputMemory sont les seules méthodes objet que les pilotes peuvent appeler pour accéder aux mémoires tampons.

UMDF versions 1.9 et ultérieures peuvent prendre en charge la récupération immédiate ou différée des mémoires tampons de requête. Tous les nouveaux pilotes doivent activer la récupération différée, car elle offre généralement de meilleures performances de pilote que la récupération immédiate. Si un pilote n’active pas la récupération différée, UMDF utilise la récupération immédiate.

Pour différer la récupération des mémoires tampons, votre pilote doit appeler IWDFDeviceInitialize2 ::SetIoTypePreference et spécifier la valeur WdfDeviceIoBufferRetrievalDeferred . Une fois que votre pilote a activé la récupération différée, il peut appeler les méthodes suivantes pour accéder aux mémoires tampons de requête, à l’aide de la méthode d’accès mis en mémoire tampon ou directe :

IWDFIoRequest2 ::RetrieveInputBuffer

IWDFIoRequest2 ::RetrieveInputMemory

IWDFIoRequest2 ::RetrieveOutputBuffer

IWDFIoRequest2 ::RetrieveOutputMemory

Un pilote qui active la récupération différée ne peut pas utiliser IWDFIoRequest ::GetInputMemory et IWDFIoRequest ::GetOutputMemory pour accéder aux mémoires tampons.

Pour plus d’informations sur l’accès aux mémoires tampons de données d’une demande d’E/S, consultez Accès aux mémoires tampons de données dans les pilotes UMDF-Based.

Configuration requise

Condition requise Valeur
Version UMDF minimale 1,9
En-tête wudfddi_types.h (incluez Wudfddi.h)

Voir aussi

WDF_DEVICE_IO_TYPE (UMDF)