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) |