Compartir a través de


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 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)

Consulte también

WDF_IO_QUEUE_CONFIG_INIT

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE

WDF_IO_QUEUE_DISPATCH_TYPE

WdfIoQueueCreate

WdfIoQueueReadyNotify