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 de la requête.

Parameters

Valeurs spécifiques à la requête.

Parameters.Write

Parameters.Write.Buffer

Handle vers un objet de mémoire d’infrastructure. 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 d’infrastructure. 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 d’infrastructure. 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 d’infrastructure. 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. Consultez la section Notes.

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 appareils USB, ce membre contient un pointeur vers une structure WDF_USB_REQUEST_COMPLETION_PARAMS .

Parameters.Usb.Completion

Notes

La structure WDF_REQUEST_COMPLETION_PARAMS est utilisée comme entrée dans la méthode WdfRequestGetCompletionParams et la fonction de rappel CompletionRoutine d’un 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 membres Parameters.Others.Argument sont des arguments personnalisés qu’un pilote transmet généralement à la pile (et peut arriver une fois la requête terminée). Elles sont utilisées pour les données dépendantes de la pile des pilotes non standard. Par exemple, un pilote USB spécifie un pointeur vers un URB dans Parameters.Others.Argument1 lorsqu’il envoie une requête 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.

Spécifications

   
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfrequest.h (include Wdf.h)

Voir aussi

CompletionRoutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams