estructura WDF_REQUEST_COMPLETION_PARAMS (wdfrequest.h)
[Se aplica a KMDF y UMDF]
La estructura WDF_REQUEST_COMPLETION_PARAMS contiene parámetros asociados a la finalización de una solicitud de E/S.
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;
Size
Tamaño, en bytes, de esta estructura.
Type
Valor de WDF_REQUEST_TYPE que identifica el tipo de solicitud.
IoStatus
Estructura IO_STATUS_BLOCK de la solicitud.
Parameters
Valores específicos de la solicitud para la solicitud.
Parameters.Write
Parameters.Write.Buffer
Identificador de un objeto de memoria de marco. Este objeto identifica el búfer que especificó el controlador al dar formato a la solicitud y lo envió a un destino de E/S.
Parameters.Write.Length
Longitud, en bytes, de la transferencia.
Parameters.Write.Offset
Dirección inicial dentro del búfer para la transferencia de datos.
Parameters.Read
Parameters.Read.Buffer
Identificador de un objeto de memoria de marco. Este objeto identifica el búfer que especificó el controlador al dar formato a la solicitud y lo envió a un destino de E/S.
Parameters.Read.Length
Longitud, en bytes, de la transferencia.
Parameters.Read.Offset
Dirección inicial dentro del búfer para la transferencia de datos.
Parameters.Ioctl
Parameters.Ioctl.IoControlCode
Parameters.Ioctl.Input
Parameters.Ioctl.Input.Buffer
Identificador de un objeto de memoria de marco. Este objeto identifica el búfer de entrada que el controlador especificó al dar formato a la solicitud y lo envió a un destino de E/S.
Parameters.Ioctl.Input.Offset
Dirección inicial dentro del búfer para la transferencia de datos.
Parameters.Ioctl.Output
Parameters.Ioctl.Output.Buffer
Identificador de un objeto de memoria de marco. Este objeto identifica los búferes de salida que el controlador especificó al dar formato a la solicitud y lo envió a un destino de E/S.
Parameters.Ioctl.Output.Offset
Dirección inicial dentro del búfer para la transferencia de datos.
Parameters.Ioctl.Output.Length
Longitud, en bytes, de la transferencia.
Parameters.Others
Parameters.Others.Argument1
El uso de este miembro se define mediante la pila de controladores. Vea comentarios.
Parameters.Others.Argument1.Ptr
Parameters.Others.Argument1.Value
Parameters.Others.Argument2
El uso de este miembro se define mediante la pila de controladores.
Parameters.Others.Argument2.Ptr
Parameters.Others.Argument2.Value
Parameters.Others.Argument3
El uso de este miembro se define mediante la pila de controladores.
Parameters.Others.Argument3.Ptr
Parameters.Others.Argument3.Value
Parameters.Others.Argument4
El uso de este miembro se define mediante la pila de controladores.
Parameters.Others.Argument4.Ptr
Parameters.Others.Argument4.Value
Parameters.Usb
En el caso de los dispositivos USB, este miembro contiene un puntero a una estructura WDF_USB_REQUEST_COMPLETION_PARAMS.
Parameters.Usb.Completion
La estructura WDF_REQUEST_COMPLETION_PARAMS se usa como entrada para el método WdfRequestGetCompletionParams y el de un controlador función de devolución de llamada.
En ambos casos, la estructura de parámetros de finalización contiene información válida solo si el controlador ha dado formato a la solicitud llamando a uno de los métodos WdfIoTargetFormatXxx. Por ejemplo, vea WdfIoTargetFormatRequestForRead.
Antes de llamar a WdfRequestGetCompletionParams para recuperar la información de finalización de E/S de una solicitud, el controlador debe llamar primero a WDF_REQUEST_COMPLETION_PARAMS_INIT para inicializar la estructura WDF_REQUEST_COMPLETION_PARAMS.
Los miembros Parameters.Others.Argument son argumentos personalizados que normalmente un controlador pasa la pila (y puede volver después de que se complete la solicitud). Se usan para datos dependientes de la pila de controladores no estándar. Por ejemplo, un controlador USB especifica un puntero a un URB en Parameters.Others.Argument1 cuando envía una solicitud de IOCTL_INTERNAL_USB_SUBMIT_URB a la pila USB. Del mismo modo, un controlador Bluetooth especifica un puntero a un BRB (bloque de solicitud bluetooth) en Parameters.Others.Argument1 cuando recibe un IOCTL_INTERNAL_BTH_SUBMIT_BRB.
Requisito | Valor |
---|---|
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfrequest.h (incluya Wdf.h) |