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.
Sintaxis
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;
Miembros
Size
Tamaño, en bytes, de esta estructura.
Type
Valor WDF_REQUEST_TYPE que identifica el tipo de solicitud.
IoStatus
Estructura IO_STATUS_BLOCK de la solicitud.
Parameters
Valores específicos de la solicitud.
Parameters.Write
Parameters.Write.Buffer
Identificador de un objeto de memoria de marco. Este objeto identifica el búfer que el controlador especificó 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 el controlador especificó 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 la sección 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
Comentarios
La estructura WDF_REQUEST_COMPLETION_PARAMS se usa como entrada para el método WdfRequestGetCompletionParams y la función de devolución de llamada CompletionRoutine de un controlador.
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 de WDF_REQUEST_COMPLETION_PARAMS .
Los miembros Parameters.Others.Argument son argumentos personalizados que un controlador suele pasar por la pila (y puede volver después de completar 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.
Requisitos
Requisito | Value |
---|---|
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfrequest.h (incluir Wdf.h) |