estrutura WDF_IO_QUEUE_CONFIG (wdfio.h)

[Aplica-se a KMDF e UMDF]

A estrutura WDF_IO_QUEUE_CONFIG contém informações de configuração para um objeto de fila de estrutura.

Sintaxe

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;

Membros

Size

O comprimento, em bytes, dessa estrutura.

DispatchType

Um enumerador WDF_IO_QUEUE_DISPATCH_TYPE que identifica o tipo de expedição de solicitação para a fila.

PowerManaged

Um valor de tipo WDF_TRI_STATE que, se definido como WdfTrue, indica que a estrutura lida com o gerenciamento de energia da fila.

Se definido como WdfFalse, o driver deverá lidar com o gerenciamento de energia da fila.

Se definido como WdfUseDefault, a estrutura manipulará o gerenciamento de energia para a fila, a menos que o driver chame WdfFdoInitSetFilter.

Os drivers acima do proprietário da política de energia na pilha de driver não devem definir o membro PowerManaged como WdfTrue.

Para obter mais informações sobre filas de E/S gerenciadas por energia, consulte Gerenciamento de energia para filas de E/S.

AllowZeroLengthRequests

Um valor booliano que, se TRUE, indica que o driver espera receber solicitações de leitura ou gravação que têm um comprimento de buffer igual a zero, portanto, a estrutura entrega essas solicitações ao driver. Se FALSE, a estrutura não entregará essas solicitações ao driver; Em vez disso, ele os conclui com uma status de conclusão de STATUS_SUCCESS.

DefaultQueue

Um valor booliano que, se VERDADEIRO, indica que a fila será a fila de E/S padrão do dispositivo. Se FALSE, a fila não será a fila padrão do dispositivo.

EvtIoDefault

Um ponteiro para a função de retorno de chamada EvtIoDefault específica da fila do driver ou NULL.

EvtIoRead

Um ponteiro para a função de retorno de chamada EvtIoRead específica da fila do driver ou NULL.

EvtIoWrite

Um ponteiro para a função de retorno de chamada EvtIoWrite específica da fila do driver ou NULL.

EvtIoDeviceControl

Um ponteiro para a função de retorno de chamada EvtIoDeviceControl específica da fila do driver ou NULL.

EvtIoInternalDeviceControl

Um ponteiro para a função de retorno de chamada EvtIoInternalDeviceControl específica da fila do driver ou NULL.

EvtIoStop

Um ponteiro para a função de retorno de chamada EvtIoStop específica da fila do driver ou NULL.

EvtIoResume

Um ponteiro para a função de retorno de chamada EvtIoResume específica da fila do driver ou NULL.

EvtIoCanceledOnQueue

Um ponteiro para a função de retorno de chamada EvtIoCanceledOnQueue específica da fila do driver ou NULL.

Settings

Settings.Parallel

Settings.Parallel.NumberOfPresentedRequests

Para o método de expedição paralela, o número máximo de solicitações de E/S que a estrutura fornece de forma assíncrona aos manipuladores de solicitação da fila de E/S. Para obter mais informações, consulte a seção Comentários a seguir. Para os métodos de expedição sequencial e manual, esse membro deve ser zero. Esse membro está disponível na versão 1.9 e versões posteriores do KMDF.

Driver

Apenas para uso interno. Definido como NULL. Esse membro está disponível na versão 1.11 e versões posteriores do KMDF.

Comentários

O driver deve inicializar a estrutura de WDF_IO_QUEUE_CONFIG chamando WDF_IO_QUEUE_CONFIG_INIT ou WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE.

A estrutura WDF_IO_QUEUE_CONFIG é usada como um parâmetro de entrada para WdfIoQueueCreate.

A partir da versão 1.9 do KMDF, os drivers podem usar o membro NumberOfPresentedRequests para especificar o número máximo de solicitações de E/S que a estrutura fornece de forma assíncrona aos manipuladores de solicitação de uma fila de E/S paralela. Depois que a estrutura entregar o número especificado de solicitações de E/S ao driver, ela não entregará mais solicitações da fila até que o driver seja concluído, cancele ou requeira pelo menos uma das solicitações.

Para filas paralelas, WDF_IO_QUEUE_CONFIG_INIT e WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE definir o membro NumberOfPresentedRequests como seu valor padrão (-1), o que indica que a estrutura pode fornecer um número ilimitado de solicitações de E/S ao driver.

Requisitos

Requisito Valor
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfio.h (inclua Wdf.h)

Confira também

WDF_IO_QUEUE_CONFIG_INIT

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE

WDF_IO_QUEUE_DISPATCH_TYPE

WdfIoQueueCreate

WdfIoQueueReadyNotify