WDF_IO_QUEUE_CONFIG 結構 (wdfio.h)

[適用於 KMDF 和 UMDF]

WDF_IO_QUEUE_CONFIG 結構包含架構佇列物件的組態資訊。

語法

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;

成員

Size

這個結構的長度,以位元組為單位。

DispatchType

識別佇列要求分派類型的 WDF_IO_QUEUE_DISPATCH_TYPE 列舉值。

PowerManaged

WDF_TRI_STATE型別值,如果設定為 WdfTrue,表示架構會處理佇列的電源管理。

如果設定為 WdfFalse,驅動程式必須處理佇列的電源管理。

如果設定為 WdfUseDefault,除非驅動程式呼叫 WdfFdoInitSetFilter,否則架構會處理佇列的電源管理。

驅動程式堆疊中 電源原則擁有者 上方的驅動程式不得將 PowerManaged 成員設定為 WdfTrue

如需電源管理 I/O 佇列的詳細資訊,請參閱 I/O 佇列的電源管理

AllowZeroLengthRequests

布爾值,如果為 TRUE,表示驅動程式預期會收到緩衝區長度為零的讀取或寫入要求,因此架構會將這些要求傳遞給驅動程式。 如果 為 FALSE,架構就不會將這些要求傳遞給驅動程式;相反地,它會以STATUS_SUCCESS的完成狀態完成它們。

DefaultQueue

布爾值,如果為 TRUE,表示佇列會是裝置 的預設 I/O 佇列。 如果 為 FALSE,佇列將不會是裝置的預設佇列。

EvtIoDefault

驅動程式佇列特定 EvtIoDefault 回呼函式或 NULL 的指標。

EvtIoRead

驅動程式佇列特定 EvtIoRead 回呼函式或 NULL 的指標。

EvtIoWrite

驅動程式佇列特定 EvtIoWrite 回呼函式或 NULL 的指標。

EvtIoDeviceControl

驅動程式佇列特定 EvtIoDeviceControl 回呼函式或 NULL 的指標。

EvtIoInternalDeviceControl

驅動程式佇列特定 EvtIoInternalDeviceControl 回呼函式或 NULL 的指標。

EvtIoStop

驅動程式佇列特定 EvtIoStop 回呼函式或 NULL 的指標。

EvtIoResume

驅動程式佇列特定 EvtIoResume 回呼函式或 NULL 的指標。

EvtIoCanceledOnQueue

驅動程式佇列特定 EvtIoCanceledOnQueue 回呼函式或 NULL 的指標。

Settings

Settings.Parallel

Settings.Parallel.NumberOfPresentedRequests

針對平行 分派方法,架構異步傳遞至 I/O 佇列要求處理程式的最大 I/O 要求數目。 如需詳細資訊,請參閱接下來的<備註>一節。 對於循序和手動分派方法,這個成員必須是零。 此成員可在 1.9 版和更新版本的 KMDF 中使用。

Driver

僅供內部使用。 設定為 NULL。 此成員可在 1.11 版和更新版本的 KMDF 中使用。

備註

驅動程式必須藉由呼叫 WDF_IO_QUEUE_CONFIG_INITWDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE,初始化 WDF_IO_QUEUE_CONFIG 結構。

WDF_IO_QUEUE_CONFIG 結構是做為 WdfIoQueueCreate 的輸入參數。

從 KMDF 1.9 版開始,驅動程式可以使用 NumberOfPresentedRequests 成員來指定架構異步傳遞至平行 I/O 佇列要求處理程式的最大 I/O 要求數目。 架構將指定的 I/O 要求數目傳遞給驅動程式之後,在驅動程式 完成取消重新佇列 至少一個要求之前,它不會從佇列傳遞更多要求。

對於平行佇列, WDF_IO_QUEUE_CONFIG_INITWDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUENumberOfPresentedRequests 成員設定為其預設值 (-1) ,這表示架構可以將不限數目的 I/O 要求傳遞給驅動程式。

規格需求

需求
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfio.h (包含 Wdf.h)

另請參閱

WDF_IO_QUEUE_CONFIG_INIT

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE

WDF_IO_QUEUE_DISPATCH_TYPE

WdfIoQueueCreate

WdfIoQueueReadyNotify