次の方法で共有


WdfDmaTransactionSetMaximumLength 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionSetMaximumLength メソッドは、指定された DMA トランザクションに関連付けられている DMA 転送の最大長を設定します。

構文

void WdfDmaTransactionSetMaximumLength(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] size_t            MaximumLength
);

パラメーター

[in] DmaTransaction

ドライバーが WdfDmaTransactionCreate の以前の呼び出しから取得した DMA トランザクション オブジェクトへのハンドル。

[in] MaximumLength

デバイスが 1 回の DMA 転送操作で処理できる最大サイズ (バイト単位)。 最大 16 個の マップ レジスタをサポートする Microsoft Windows オペレーティング システムのバージョンでドライバーを実行する必要がある場合、 MaximumLength は 65536 未満である必要があります。

MaximumLength 値は、次のように、指定された DMA トランザクションにのみ適用されます。

  • 指定した値が、ドライバーが WDF_DMA_ENABLER_CONFIG 構造体で指定した既定値より小さい場合、指定した値は既定値をオーバーライドします。
  • 指定した値が既定値より大きい場合、指定した値は無視されます。

戻り値

なし

解説

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

ドライバーは 、WdfDmaTransactionSetMaximumLength を呼び出す前に DMA トランザクションを初期化する必要があります。

DMA トランザクションの初期化の詳細については、「DMA トランザクション の作成と初期化」を参照してください。

次のコード例では、指定した DMA トランザクションのドライバー定義値に転送の最大長を設定します。

WdfDmaTransactionSetMaximumLength(
                                 dmaTransaction,
                                 MAX_TRANSFER_LENGTH/2,
                                 );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfdmatransaction.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)

こちらもご覧ください

WDF_DMA_ENABLER_CONFIG

WdfDmaTransactionCreate