Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[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 de tipo WDF_TRI_STATEque, 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 TRUE, indica que el controlador espera recibir solicitudes de lectura o escritura que tengan una longitud de búfer de cero, por lo que el marco entrega estas solicitudes al controlador. Si 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 TRUE, indica que la cola será el cola de E/S predeterminada del dispositivo. Si FALSE, la cola no será la cola predeterminada del dispositivo.
EvtIoDefault
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoDefault o NULL.
EvtIoRead
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoRead o NULL.
EvtIoWrite
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoWrite o NULL.
EvtIoDeviceControl
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoDeviceControl o null.
EvtIoInternalDeviceControl
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoInternalDeviceControl función de devolución de llamada o NULL.
EvtIoStop
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoStop o NULL.
EvtIoResume
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoResume o null.
EvtIoCanceledOnQueue
Puntero a la función de devolución de llamada específica de la cola del controlador EvtIoCanceledOnQueue función de devolución de llamada 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 de forma asincrónica a los controladores de solicitudes de la cola de E/S. Para obtener más información, vea la siguiente sección Comentarios. Para los métodos de envío secuenciales y manuales, 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. Establezca en NULL. Este miembro está disponible en la versión 1.11 y versiones posteriores de KMDF.
Observaciones
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 la cola de E/S paralelas. 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 complete, cancelao requeues al menos una de las solicitudes.
En el caso de 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 | Valor |
---|---|
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado | wdfio.h (incluya Wdf.h) |