次の方法で共有


WdfDmaTransactionSetImmediateExecution 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionSetImmediateExecution メソッドは、指定された DMA トランザクションをマークして、WdfDmaTransactionExecuteWdfDmaTransactionAllocateResources の呼び出しがトランザクションを直ちに開始するか失敗するようにします。

構文

void WdfDmaTransactionSetImmediateExecution(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] BOOLEAN           UseImmediateExecution
);

パラメーター

[in] DmaTransaction

即時実行をマークする DMA トランザクション オブジェクトへのハンドル。

[in] UseImmediateExecution

TRUE の場合は、トランザクションをすぐに実行する必要があることを示すブール値 (リソースが利用できない場合は失敗)、FALSE の場合は DMA リソースが使用可能になったらトランザクションを実行キューに登録する必要があることを示します。

戻り値

なし

解説

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

UseImmediateExecution が TRUE に設定された WdfDmaTransactionSetImmediateExecution を呼び出した後、ドライバーが WdfDmaTransactionExecute または WdfDmaTransactionAllocateResources を呼び出し、要求に必要なリソースが使用できない場合、そのメソッドはSTATUS_INSUFFICIENT_RESOURCESを返します。 必要なリソースが使用可能な場合、フレームワークはそれらを要求し、同期的に呼び出しを開始します。

ドライバーがトランザクションを即時実行にマークした後、ドライバーが WdfDmaTransactionRelease を呼び出すか、UseImmediateExecution を FALSE に設定して WdfDmaTransactionSetImmediateExecution を呼び出してフラグをクリアするまで、トランザクションはそのようにマークされたままになります。

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

ドライバーがWindows 8より前のオペレーティング システムでこのメソッドを呼び出すと、フレームワークの検証ツールによってエラーが報告されます。

要件

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

こちらもご覧ください

WdfDmaTransactionAllocateResources

WdfDmaTransactionExecute

WdfDmaTransactionRelease