struttura WDF_IO_QUEUE_CONFIG (wdfio.h)

[Si applica a KMDF e UMDF]

La struttura WDF_IO_QUEUE_CONFIG contiene informazioni di configurazione per un oggetto coda del framework.

Sintassi

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;

Members

Size

Lunghezza, in byte, di questa struttura.

DispatchType

Enumeratore WDF_IO_QUEUE_DISPATCH_TYPE che identifica il tipo di invio della richiesta per la coda.

PowerManaged

Valore WDF_TRI_STATE tipizzato che, se impostato su WdfTrue, indica che il framework gestisce il risparmio energia della coda.

Se impostato su WdfFalse, il driver deve gestire il risparmio energia della coda.

Se impostato su WdfUseDefault, il framework gestisce il risparmio energia per la coda a meno che il driver non chiami WdfFdoInitSetFilter.

I driver al di sopra del proprietario dei criteri di alimentazione nello stack di driver non devono impostare il membro PowerManaged su WdfTrue.

Per altre informazioni sulle code di I/O gestite dall'alimentazione, vedere Power Management for I/O Queues .For more information about power-managed I/O queues, see Power Management for I/O Queues.

AllowZeroLengthRequests

Valore booleano che, se TRUE, indica che il driver prevede di ricevere richieste di lettura o scrittura con lunghezza del buffer pari a zero, quindi il framework recapita queste richieste al driver. Se FALSE, il framework non recapita queste richieste al driver; al contrario, li completa con uno stato di completamento di STATUS_SUCCESS.

DefaultQueue

Valore booleano che, se TRUE, indica che la coda sarà la coda di I/O predefinita del dispositivo. Se FALSE, la coda non sarà la coda predefinita del dispositivo.

EvtIoDefault

Puntatore alla funzione di callback EvtIoDefault specifica della coda del driver o NULL.

EvtIoRead

Puntatore alla funzione di callback EvtIoRead specifica della coda del driver o NULL.

EvtIoWrite

Puntatore alla funzione di callback EvtIoWrite specifica della coda del driver o NULL.

EvtIoDeviceControl

Puntatore alla funzione di callback EvtIoDeviceControl specifica della coda del driver o NULL.

EvtIoInternalDeviceControl

Puntatore alla funzione di callback EvtIoInternalDeviceControl specifica della coda del driver o NULL.

EvtIoStop

Puntatore alla funzione di callback EvtIoStop specifica della coda del driver o NULL.

EvtIoResume

Puntatore alla funzione di callback EvtIoResume specifica della coda del driver o NULL.

EvtIoCanceledOnQueue

Puntatore alla funzione di callback EvtIoCanceledOnQueue specifica della coda del driver o NULL.

Settings

Settings.Parallel

Settings.Parallel.NumberOfPresentedRequests

Per il metodo di invio parallelo, il numero massimo di richieste di I/O che il framework recapita in modo asincrono ai gestori di richieste della coda di I/O. Per ulteriori informazioni, vedere la sezione Osservazioni successiva. Per i metodi di invio sequenziale e manuale, questo membro deve essere zero. Questo membro è disponibile nella versione 1.9 e successive di KMDF.

Driver

Solo per uso interno. Impostata su NULL. Questo membro è disponibile nella versione 1.11 e successive di KMDF.

Commenti

Il driver deve inizializzare la struttura di WDF_IO_QUEUE_CONFIG chiamando WDF_IO_QUEUE_CONFIG_INIT o WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE.

La struttura WDF_IO_QUEUE_CONFIG viene usata come parametro di input per WdfIoQueueCreate.

A partire dalla versione 1.9 di KMDF, i driver possono usare il membro NumberOfPresentedRequests per specificare il numero massimo di richieste di I/O che il framework recapita in modo asincrono ai gestori di richieste di una coda di I/O parallela. Dopo che il framework ha recapitato il numero specificato di richieste di I/O al driver, non recapita più richieste dalla coda fino a quando il driver non viene completato, annulla o accoda almeno una delle richieste.

Per le code parallele, WDF_IO_QUEUE_CONFIG_INIT e WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE impostare il membro NumberOfPresentedRequests sul valore predefinito (-1), che indica che il framework può recapitare un numero illimitato di richieste di I/O al driver.

Requisiti

Requisito Valore
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfio.h (include Wdf.h)

Vedi anche

WDF_IO_QUEUE_CONFIG_INIT

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE

WDF_IO_QUEUE_DISPATCH_TYPE

WdfIoQueueCreate

WdfIoQueueReadyNotify