WdfDmaTransactionSetImmediateExecution 関数 (wdfdmatransaction.h)
[KMDF にのみ適用]
WdfDmaTransactionSetImmediateExecution メソッドは、指定された DMA トランザクションをマークして、WdfDmaTransactionExecute と WdfDmaTransactionAllocateResources の呼び出しがトランザクションを直ちに開始するか失敗するようにします。
構文
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_CONFIGの WdmDmaVersionOverride メンバーを 3 に設定します。
ドライバーがWindows 8より前のオペレーティング システムでこのメソッドを呼び出すと、フレームワークの検証ツールによってエラーが報告されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.11 |
Header | wdfdmatransaction.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf) |