次の方法で共有


WdfDmaTransactionSetSingleTransferRequirement 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionSetSingleTransferRequirement メソッドは、DMA トランザクションが 1 回の転送で完了する必要があることを指定します。

構文

void WdfDmaTransactionSetSingleTransferRequirement(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] BOOLEAN           RequireSingleTransfer
);

パラメーター

[in] DmaTransaction

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

[in] RequireSingleTransfer

TRUE の場合、DMA トランザクションに 1 回の転送が必要であることを指定するブール値。

戻り値

なし

解説

このメソッドは、1 つのトランザクションに対してのみ 1 つの転送を要求します。 トランザクション オブジェクトが WdfDmaTransactionRelease でリサイクルされ、再初期化されると、この設定はリセットされます。これは、即時実行や最大転送長などの他のトランザクション レベルのプロパティと同様です。

特定の DMA イネーブラーを使用して作成されたすべての DMA トランザクションに対して単一転送を要求するには、WdfDmaEnablerCreate を呼び出すときに WDF_DMA_ENABLER_CONFIG_FLAGSWDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER を指定します。 これは、DMA イネーブラーで作成された各トランザクション オブジェクトに対 して WdfDmaTransactionSetSingleTransferRequirement を呼び出すことと同じです。

ドライバーは、トランザクション オブジェクトを作成またはリサイクルした後、初期化または実行する前に WdfDmaTransactionSetSingleTransferRequirement を呼び出します。 詳細については、「 単一転送 DMA の使用」を参照してください。

WdfDmaTransactionSetSingleTransferRequirement には DMA バージョン 3 が必要です。 DMA バージョン 3 を選択するには、WDF_DMA_ENABLER_CONFIGWdmDmaVersionOverride メンバーを 3 に設定します。

要件

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

こちらもご覧ください

WdfDmaTransactionCreate

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest