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 ターゲットからデータを受信するためにフレームワークがキューに登録する読み取り要求の数。 この値が 0 の場合、フレームワークは既定の数の読み取り要求を使用します。 指定した値が許可された最大値を超える場合、フレームワークは許可された最大値を使用します。 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 構成など、さまざまなハードウェア構成が含まれている必要があります。 その後、同じテストを使用して、より高い値を試すことができます。 より高い値を必要とする可能性があるドライバーは、割り込み速度が高いデバイスでは 1 つであり、割り込みが迅速に処理されない場合にデータが失われる可能性があります。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfusb.h (Wdfusb.h を含む) |