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 構成など、さまざまなハードウェア構成を含める必要があります。 その後、同じテストを使用して、より高い値を試すことができます。 より高い値を必要とする可能性のあるドライバーは、割り込み速度が高いデバイスの場合であり、割り込みが迅速に処理されない場合にデータが失われる可能性があります。
必要条件
要件 | 価値 |
---|---|
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfusb.h (Wdfusb.h を含む) |
関連項目
EvtUsbTargetPipeReadComplete の
EvtUsbTargetPipeReadersFailed の
WDF_USB_CONTINUOUS_READER_CONFIG_INIT
WdfUsbTargetPipeConfigContinuousReader の