次の方法で共有


WdfDmaTransactionRelease 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionRelease メソッドは、関連付けられている DMA トランザクション オブジェクトを削除せずに、指定された DMA トランザクションを終了します。

構文

NTSTATUS WdfDmaTransactionRelease(
  [in] WDFDMATRANSACTION DmaTransaction
);

パラメーター

[in] DmaTransaction

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

戻り値

操作が成功した場合、WdfDmaTransactionRelease はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次の値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_DEVICE_STATE
ドライバーは、 DmaTransaction パラメーターが指定したトランザクション オブジェクトを既に解放または削除しています。
 

このメソッドは、他の NTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

WdfDmaTransactionRelease メソッドは、転送バッファーをフラッシュし、DMA トランザクションに関連付けられているすべてのシステム リソースを解放します。 トランザクション オブジェクトは削除されず、再利用できます。 トランザクション オブジェクトの再利用の詳細については、「 DMA トランザクション オブジェクトの再利用」を参照してください。

WdfDmaTransactionInitializeXxx が成功を返し、WdfDmaTransactionExecute がエラー値を返す場合、ドライバーは WdfDmaTransactionRelease を呼び出す必要があります。

次のコード例では、指定した DMA トランザクション オブジェクトが表す DMA トランザクションを終了しますが、DMA トランザクション オブジェクトは削除しません。

NTSTATUS  status;

status = WdfDmaTransactionRelease(dmaTransaction);

要件

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

こちらもご覧ください

WdfDmaTransactionCreate