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) |