WDF_DMA_ENABLER_CONFIG_FLAGS列挙 (wdfdmaenabler.h)
[KMDF にのみ適用]
WDF_DMA_ENABLER_CONFIG_FLAGS列挙型は、ドライバーのWDF_DMA_ENABLER_CONFIG構造体で使用されるフラグを定義します。
構文
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;
定数
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION 値: 0x00000001 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION フラグは、次の DMA プロファイルにのみ適用されます。
既定では、 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION が設定されておらず、 WDF_DMA_PROFILE が前の一覧の WDF のいずれかである場合 は、この DMA アダプターのトランザクションで使用される散布図/収集リストのルックアサイド リストを作成します オブジェクトの型の情報、列見出し、およびすべてのプロパティが含まれている必要があります。 リスト エントリは、指定された最大値を許可するように初期化されます 転送長。 トランザクションが実行されると、WDF は BuildScatterGatherList エントリ関数を呼び出します。 進行状況ドライバーを転送する このフラグは設定しないでください。また、前に示した 4 つのプロファイルのいずれかを使用する必要があります。 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATIONが設定されていて、WDF_DMA_PROFILEが前のリストの 1 つである場合、WDF はルックアサイド リストを作成しません。 トランザクションが実行されると、WDF は GetScatterGatherList を呼び出します。 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION設定すると、特に最大転送長が大きい場合に、メモリ使用量が減少する可能性があります。 ただし、このフラグを設定すると、メモリ不足状態で DMA 操作を実行できない可能性があります。 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATIONが設定されているときに転送の進行状況を保証するために、ドライバーは別の DMA イネーブラーを使用するか、共通のバッファーを介して転送をバウンスします。 |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER 値: 0x00000002 WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER フラグは、バージョン 1.19 の KMDF 以降で使用できます。 このフラグには、DMA バージョン 3 も必要です。 DMA バージョン 3 を選択するには、WDF_DMA_ENABLER_CONFIGの WdmDmaVersionOverride メンバーを 3 に設定します。 このフラグは、すべての DMA プロファイルに適用されます。 設定されている場合、WDF は、このイネーブラーで作成された WDFDMATRANSACTION を複数の DMA 転送にフラグメント化しません。 これが不可能な場合、トランザクションの初期化または実行が失敗します。 このオプションは、1 回の DMA 操作ですべてのデータを受信する必要があるデバイスを対象としています。 ドライバーには、 WdfDmaTransactionSetSingleTransferRequirement を使用してトランザクションごとのレベルでこれを指定するオプションもあります。 詳細については、「 単一転送 DMA の使用」を参照してください。 |
注釈
このページの値の有効なビットごとの OR を、WDF_DMA_ENABLER_CONFIG構造体の Flags メンバーに指定できます。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.11 |
Header | wdfdmaenabler.h (Wdf.h を含む) |