共用方式為


WDF_USB_CONTINUOUS_READER_CONFIG結構 (wdfusb.h)

[適用於 KMDF 和 UMDF]

WDF_USB_CONTINUOUS_READER_CONFIG 結構包含架構用來設定USB管道連續讀取器的資訊。

語法

typedef struct _WDF_USB_CONTINUOUS_READER_CONFIG {
  ULONG                                 Size;
  size_t                                TransferLength;
  size_t                                HeaderLength;
  size_t                                TrailerLength;
  UCHAR                                 NumPendingReads;
  PWDF_OBJECT_ATTRIBUTES                BufferAttributes;
  PFN_WDF_USB_READER_COMPLETION_ROUTINE EvtUsbTargetPipeReadComplete;
  WDFCONTEXT                            EvtUsbTargetPipeReadCompleteContext;
  PFN_WDF_USB_READERS_FAILED            EvtUsbTargetPipeReadersFailed;
} WDF_USB_CONTINUOUS_READER_CONFIG, *PWDF_USB_CONTINUOUS_READER_CONFIG;

成員

Size

這個 結構的大小,以位元組為單位。

TransferLength

可從裝置接收的數據長度上限,以位元組為單位。

HeaderLength

從裝置接收數據的緩衝區中,以位元組為單位的位移。 架構會從裝置的數據儲存在讀取緩衝區中,從位移值開始。 換句話說,此空間位於 TransferLength大小空間之前,架構會從裝置儲存數據。

TrailerLength

尾端緩衝區空間的長度,以位元組為單位。 此空間會遵循 TransferLength大小的空間,架構會從裝置儲存數據。

NumPendingReads

架構將排入佇列以接收 I/O 目標數據的讀取要求數目。 如果此值為零,架構會使用預設的讀取要求數目。 如果指定的值大於允許的最大值,架構會使用允許的最大值。 如需 NumPendingReads 成員的詳細資訊,請參閱下列一節。

BufferAttributes

WDF_OBJECT_ATTRIBUTES 結構,指定架構針對每個讀取要求建立之架構記憶體對象的物件屬性。 這個成員可以 NULL。 您無法設定WDF_OBJECT_ATTRIBUTES結構 成員 ParentObject。

EvtUsbTargetPipeReadComplete

驅動程式 EvtUsbTargetPipeReadComplete 回呼函式的指標。

EvtUsbTargetPipeReadCompleteContext

架構傳遞給驅動程式 EvtUsbTargetPipeReadComplete 回呼函式之驅動程式定義內容資訊的不具型別指標。

EvtUsbTargetPipeReadersFailed

驅動程式 EvtUsbTargetPipeReadersFailed 回呼函式的指標。 此指標是選擇性的,而且可以 NULL。 如需此參數的詳細資訊,請參閱 WdfUsbTargetPipeConfigContinuousReader的一節。

言論

WDF_USB_CONTINUOUS_READER_CONFIG 結構會作為 WdfUsbTargetPipeConfigContinuousReader 方法的輸入。

若要初始化WDF_USB_CONTINUOUS_READER_CONFIG結構,驅動程式必須呼叫 WDF_USB_CONTINUOUS_READER_CONFIG_INIT

在為 NumPendingReads 成員選擇值時,請使用下列指導方針:

  • 如果您希望驅動程式使用架構的預設值,請將 NumPendingReads 設為 0。

    默認值大於 1,並已決定為許多處理器組態上的許多裝置提供相當良好的效能。

  • 如果驅動程式必須依照裝置傳遞數據的確切順序接收數據緩衝區,請將 NumPendingReads 設定為 1。
  • 根據完整的效能測量,將 NumPendingReads 設定為符合裝置效能需求的數位。

    首先,使用 NumPendingReads的預設值 (0) 測試您的裝置。 您的測試應包含各種硬體設定,包括不同類型的處理器和數目,以及不同的USB主機控制器和USB組態。 然後,您可以使用相同的測試來實驗較高的值。 可能需要較高值的驅動程式是具有高中斷率之裝置的驅動程式,如果中斷未快速服務,可能會遺失數據。

NumPendingReads 太大的值可能會降低系統的效能。 您應該使用符合效能需求的最低值。 一般而言,高於 3 或 4 的值不會改善數據輸送量。 但是較高的值可能會降低高頻率管道上延遲或遺失數據的機會。

要求

要求 價值
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
標頭 wdfusb.h (包括 Wdfusb.h)

另請參閱

EvtUsbTargetPipeReadComplete

EvtUsbTargetPipeReadersFailed

WDF_OBJECT_ATTRIBUTES

WDF_USB_CONTINUOUS_READER_CONFIG_INIT

WdfUsbTargetPipeConfigContinuousReader