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 demande 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 pour la demande.
Parameters.Write
Parameters.Write.Buffer
Handle d’un objet de mémoire 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ée à 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 d’un objet de mémoire 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ée à 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 d’un objet de mémoire framework. Cet objet identifie la mémoire tampon d’entrée spécifiée par le pilote lorsqu’il a mis en forme la demande et l’a envoyée à 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 d’un objet de mémoire framework. Cet objet identifie les mémoires tampons de sortie que le pilote a spécifiées lorsqu’il a mis en forme la requête et l’a envoyée à 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 de 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 de pilotes.
Parameters.Others.Argument2.Ptr
Parameters.Others.Argument2.Value
Parameters.Others.Argument3
L’utilisation de ce membre est définie par la pile de pilotes.
Parameters.Others.Argument3.Ptr
Parameters.Others.Argument3.Value
Parameters.Others.Argument4
L’utilisation de ce membre est définie par la pile de 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 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 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 de fin d’E/S d’une requête, 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 dans la pile (et peut revenir une fois la demande terminée). Ils sont utilisés pour les données non standard dépendantes de la pile de pilotes. 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 (Bluetooth Request Block) dans Parameters.Others.Argument1 lorsqu’il reçoit un IOCTL_INTERNAL_BTH_SUBMIT_BRB.
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfrequest.h (include Wdf.h) |