[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 |
| ヘッダー | wdfdmatransaction.h (Wdf.h を含む) |
| 図書館 | Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。 |
| IRQL | <=DISPATCH_LEVEL |
| DDI コンプライアンス規則 を する | DriverCreate(kmdf) |