estructura WDF_IO_QUEUE_CONFIG (wdfio.h)
[Se aplica a KMDF y UMDF]
La estructura WDF_IO_QUEUE_CONFIG contiene información de configuración para un objeto de cola de marco.
Sintaxis
typedef struct _WDF_IO_QUEUE_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType;
WDF_TRI_STATE PowerManaged;
BOOLEAN AllowZeroLengthRequests;
BOOLEAN DefaultQueue;
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault;
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead;
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite;
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl;
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl;
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop;
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume;
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue;
union {
struct {
ULONG NumberOfPresentedRequests;
} Parallel;
} Settings;
WDFDRIVER Driver;
} WDF_IO_QUEUE_CONFIG, *PWDF_IO_QUEUE_CONFIG;
Miembros
Size
Longitud, en bytes, de esta estructura.
DispatchType
Enumerador WDF_IO_QUEUE_DISPATCH_TYPE que identifica el tipo de envío de solicitudes para la cola.
PowerManaged
Valor con tipo WDF_TRI_STATE que, si se establece en WdfTrue, indica que el marco controla la administración de energía de la cola.
Si se establece en WdfFalse, el controlador debe controlar la administración de energía de la cola.
Si se establece en WdfUseDefault, el marco controla la administración de energía de la cola a menos que el controlador llame a WdfFdoInitSetFilter.
Los controladores situados encima del propietario de la directiva de energía en la pila de controladores no deben establecer el miembro PowerManaged en WdfTrue.
Para obtener más información sobre las colas de E/S administradas por energía, consulte Administración de energía para colas de E/S.
AllowZeroLengthRequests
Valor booleano que, si es TRUE, indica que el controlador espera recibir solicitudes de lectura o escritura que tienen una longitud de búfer de cero, por lo que el marco entrega estas solicitudes al controlador. Si es FALSE, el marco no entrega estas solicitudes al controlador; en su lugar, los completa con un estado de finalización de STATUS_SUCCESS.
DefaultQueue
Valor booleano que, si es TRUE, indica que la cola será la cola de E/S predeterminada del dispositivo. Si es FALSE, la cola no será la cola predeterminada del dispositivo.
EvtIoDefault
Puntero a la función de devolución de llamada EvtIoDefault específica de la cola del controlador o NULL.
EvtIoRead
Puntero a la función de devolución de llamada EvtIoRead específica de la cola del controlador o NULL.
EvtIoWrite
Puntero a la función de devolución de llamada EvtIoWrite específica de la cola del controlador o NULL.
EvtIoDeviceControl
Puntero a la función de devolución de llamada EvtIoDeviceControl específica de la cola del controlador o NULL.
EvtIoInternalDeviceControl
Puntero a la función de devolución de llamada EvtIoInternalDeviceControl específica de la cola del controlador o NULL.
EvtIoStop
Puntero a la función de devolución de llamada EvtIoStop específica de la cola del controlador o NULL.
EvtIoResume
Puntero a la función de devolución de llamada EvtIoResume específica de la cola del controlador o NULL.
EvtIoCanceledOnQueue
Puntero a la función de devolución de llamada EvtIoCanceledOnQueue específica de la cola del controlador o NULL.
Settings
Settings.Parallel
Settings.Parallel.NumberOfPresentedRequests
Para el método de distribución en paralelo, el número máximo de solicitudes de E/S que el marco entrega asincrónicamente a los controladores de solicitudes de la cola de E/S. Para obtener más información, vea la sección Comentarios que se muestra más adelante. Para los métodos de envío secuencial y manual, este miembro debe ser cero. Este miembro está disponible en la versión 1.9 y versiones posteriores de KMDF.
Driver
Solo para uso interno. Definición en NULL Este miembro está disponible en la versión 1.11 y versiones posteriores de KMDF.
Comentarios
El controlador debe inicializar la estructura de WDF_IO_QUEUE_CONFIG llamando a WDF_IO_QUEUE_CONFIG_INIT o WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE.
La estructura WDF_IO_QUEUE_CONFIG se usa como parámetro de entrada para WdfIoQueueCreate.
A partir de la versión 1.9 de KMDF, los controladores pueden usar el miembro NumberOfPresentedRequests para especificar el número máximo de solicitudes de E/S que el marco entrega asincrónicamente a los controladores de solicitudes de una cola de E/S paralela. Después de que el marco haya entregado el número especificado de solicitudes de E/S al controlador, no entrega más solicitudes de la cola hasta que el controlador se complete, cancele o vuelva a poner en cola al menos una de las solicitudes.
Para las colas paralelas, WDF_IO_QUEUE_CONFIG_INIT y WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE establezca el miembro NumberOfPresentedRequests en su valor predeterminado (-1), lo que indica que el marco puede entregar un número ilimitado de solicitudes de E/S al controlador.
Requisitos
Requisito | Value |
---|---|
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfio.h (incluya Wdf.h) |