estructura de WDF_USB_CONTINUOUS_READER_CONFIG (wdfusb.h)
[Se aplica a KMDF y UMDF]
La estructura WDF_USB_CONTINUOUS_READER_CONFIG contiene información que usa el marco para configurar un lector continuo para una canalización USB.
Sintaxis
typedef struct _WDF_USB_CONTINUOUS_READER_CONFIG {
ULONG Size;
size_t TransferLength;
size_t HeaderLength;
size_t TrailerLength;
UCHAR NumPendingReads;
PWDF_OBJECT_ATTRIBUTES BufferAttributes;
PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete;
WDFCONTEXT EvtUsbTargetPipeReadCompleteContext;
PFN_WDF_USB_READERS_FAILED EvtUsbTargetPipeReadersFailed;
} WDF_USB_CONTINUOUS_READER_CONFIG, *PWDF_USB_CONTINUOUS_READER_CONFIG;
Miembros
Size
Tamaño, en bytes, de esta estructura.
TransferLength
Longitud máxima, en bytes, de datos que se pueden recibir desde el dispositivo.
HeaderLength
Desplazamiento, en bytes, en el búfer que recibe datos del dispositivo. El marco almacenará datos del dispositivo en un búfer de lectura, empezando por el valor de desplazamiento. En otras palabras, este espacio precede al espacio de tamaño TransferLength en el que el marco almacena los datos del dispositivo.
TrailerLength
Longitud, en bytes, de un espacio de búfer final. Este espacio sigue el espacio de tamaño TransferLength en el que el marco almacena los datos del dispositivo.
NumPendingReads
Número de solicitudes de lectura que el marco pondrá en cola para recibir datos del destino de E/S. Si este valor es cero, el marco usa un número predeterminado de solicitudes de lectura. Si el valor especificado es mayor que el máximo permitido, el marco usa el máximo permitido. Para obtener más información sobre el miembro NumPendingReads , vea la siguiente sección Comentarios.
BufferAttributes
Estructura WDF_OBJECT_ATTRIBUTES que especifica atributos de objeto para el objeto de memoria del marco que crea el marco para cada solicitud de lectura. Este miembro puede ser NULL. No se puede establecer el miembro ParentObject de la estructura WDF_OBJECT_ATTRIBUTES.
EvtUsbTargetPipeReadComplete
Puntero a la función de devolución de llamada EvtUsbTargetPipeReadComplete del controlador.
EvtUsbTargetPipeReadCompleteContext
Puntero sin tipo a la información de contexto definida por el controlador que el marco pasa a la función de devolución de llamada EvtUsbTargetPipeReadComplete del controlador.
EvtUsbTargetPipeReadersFailed
Puntero a la función de devolución de llamada EvtUsbTargetPipeReadersFailed del controlador. Este puntero es opcional y puede ser NULL. Para obtener más información sobre este parámetro, vea la sección Comentarios de WdfUsbTargetPipeConfigContinuousReader.
Comentarios
La estructura WDF_USB_CONTINUOUS_READER_CONFIG se usa como entrada para el método WdfUsbTargetPipeConfigContinuousReader .
Para inicializar una estructura de WDF_USB_CONTINUOUS_READER_CONFIG, el controlador debe llamar a WDF_USB_CONTINUOUS_READER_CONFIG_INIT.
Use las instrucciones siguientes al elegir un valor para el miembro NumPendingReads :
-
Establezca NumPendingReads en 0 si desea que el controlador use el valor predeterminado del marco.
El valor predeterminado es mayor que 1 y se ha determinado que proporciona un rendimiento razonablemente bueno para muchos dispositivos en muchas configuraciones de procesador.
- Establezca NumPendingReads en 1 si es importante que el controlador reciba búferes de datos en el orden exacto en que el dispositivo entrega los datos.
-
Establezca NumPendingReads en un número que cumpla los requisitos de rendimiento del dispositivo, en función de las medidas de rendimiento exhaustivas.
En primer lugar, pruebe el dispositivo con el valor predeterminado (0) para NumPendingReads. Las pruebas deben incluir varias configuraciones de hardware, incluidos diferentes tipos y números de procesadores y diferentes controladores de host USB y configuraciones USB. A continuación, puede experimentar con valores superiores mediante las mismas pruebas. Un controlador que podría requerir un valor más alto es uno para un dispositivo que tiene una tasa de interrupción alta, donde los datos se pueden perder si las interrupciones no se aparecen rápidamente.
Requisitos
Requisito | Value |
---|---|
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfusb.h (incluya Wdfusb.h) |