Partager via


structure WDF_REQUEST_COMPLETION_PARAMS (wdfrequest.h)

[S’applique à KMDF et UMDF]

La structure WDF_REQUEST_COMPLETION_PARAMS contient des paramètres associés à l’achèvement d’une requête d’E/S.

Syntaxe

typedef struct _WDF_REQUEST_COMPLETION_PARAMS {
  ULONG            Size;
  WDF_REQUEST_TYPE Type;
  IO_STATUS_BLOCK  IoStatus;
  union {
    struct {
      WDFMEMORY Buffer;
      size_t    Length;
      size_t    Offset;
    } Write;
    struct {
      WDFMEMORY Buffer;
      size_t    Length;
      size_t    Offset;
    } Read;
    struct {
      ULONG  IoControlCode;
      struct {
        WDFMEMORY Buffer;
        size_t    Offset;
      } Input;
      struct {
        WDFMEMORY Buffer;
        size_t    Offset;
        size_t    Length;
      } Output;
    } Ioctl;
    struct {
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument1;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument2;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument3;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument4;
    } Others;
    struct {
      PWDF_USB_REQUEST_COMPLETION_PARAMS Completion;
    } Usb;
  } Parameters;
} WDF_REQUEST_COMPLETION_PARAMS, *PWDF_REQUEST_COMPLETION_PARAMS;

Membres

Size

Taille, en octets, de cette structure.

Type

Valeur WDF_REQUEST_TYPE qui identifie le type de requête.

IoStatus

Structure IO_STATUS_BLOCK pour la requête.

Parameters

Valeurs spécifiques à la demande.

Parameters.Write

Parameters.Write.Buffer

Handle vers un objet de mémoire de framework. Cet objet identifie la mémoire tampon spécifiée par le pilote lorsqu’il a mis en forme la requête et l’a envoyé à une cible d’E/S.

Parameters.Write.Length

Longueur, en octets, du transfert.

Parameters.Write.Offset

Adresse de début dans la mémoire tampon pour le transfert de données.

Parameters.Read

Parameters.Read.Buffer

Handle vers un objet de mémoire de framework. Cet objet identifie la mémoire tampon spécifiée par le pilote lorsqu’il a mis en forme la requête et l’a envoyé à une cible d’E/S.

Parameters.Read.Length

Longueur, en octets, du transfert.

Parameters.Read.Offset

Adresse de début dans la mémoire tampon pour le transfert de données.

Parameters.Ioctl

Parameters.Ioctl.IoControlCode

Parameters.Ioctl.Input

Parameters.Ioctl.Input.Buffer

Handle vers un objet de mémoire de framework. Cet objet identifie la mémoire tampon d’entrée spécifiée par le pilote lorsqu’il a mis en forme la requête et l’a envoyé à une cible d’E/S.

Parameters.Ioctl.Input.Offset

Adresse de début dans la mémoire tampon pour le transfert de données.

Parameters.Ioctl.Output

Parameters.Ioctl.Output.Buffer

Handle vers un objet de mémoire de framework. Cet objet identifie les mémoires tampons de sortie spécifiées par le pilote lorsqu’il a mis en forme la requête et l’a envoyé à une cible d’E/S.

Parameters.Ioctl.Output.Offset

Adresse de début dans la mémoire tampon pour le transfert de données.

Parameters.Ioctl.Output.Length

Longueur, en octets, du transfert.

Parameters.Others

Parameters.Others.Argument1

L’utilisation de ce membre est définie par la pile des pilotes. Voir les remarques.

Parameters.Others.Argument1.Ptr

Parameters.Others.Argument1.Value

Parameters.Others.Argument2

L’utilisation de ce membre est définie par la pile des pilotes.

Parameters.Others.Argument2.Ptr

Parameters.Others.Argument2.Value

Parameters.Others.Argument3

L’utilisation de ce membre est définie par la pile des pilotes.

Parameters.Others.Argument3.Ptr

Parameters.Others.Argument3.Value

Parameters.Others.Argument4

L’utilisation de ce membre est définie par la pile des pilotes.

Parameters.Others.Argument4.Ptr

Parameters.Others.Argument4.Value

Parameters.Usb

Pour les périphériques USB, ce membre contient un pointeur vers une structure de WDF_USB_REQUEST_COMPLETION_PARAMS.

Parameters.Usb.Completion

Remarques

La structure WDF_REQUEST_COMPLETION_PARAMS est utilisée comme entrée dans la méthode WdfRequestGetCompletionParams et la fonction de rappel CompletionRoutine du pilote.

Dans les deux cas, la structure des paramètres d’achèvement contient des informations valides uniquement si le pilote a mis en forme la requête en appelant l’une des méthodes WdfIoTargetFormatXxx. Par exemple, consultez WdfIoTargetFormatRequestForRead.

Avant d’appeler WdfRequestGetCompletionParams pour récupérer les informations d’achèvement des E/S pour une demande, le pilote doit d’abord appeler WDF_REQUEST_COMPLETION_PARAMS_INIT pour initialiser la structure WDF_REQUEST_COMPLETION_PARAMS.

Les Parameters.Others.Argument membres sont des arguments personnalisés qu’un pilote transmet généralement la pile (et peut arriver une fois la requête terminée). Ils sont utilisés pour les données dépendantes de la pile de pilotes non standard. Par exemple, un pilote USB spécifie un pointeur vers un URB dans Parameters.Others.Argument1 lorsqu’il envoie une demande de IOCTL_INTERNAL_USB_SUBMIT_URB à la pile USB. De même, un pilote Bluetooth spécifie un pointeur vers un BRB (bloc de requête Bluetooth) dans Parameters.Others.Argument1 lorsqu’il reçoit un IOCTL_INTERNAL_BTH_SUBMIT_BRB.

Exigences

Exigence Valeur
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’en-tête wdfrequest.h (include Wdf.h)

Voir aussi

CompletionRoutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams