次の方法で共有


WdfDmaTransactionCreate 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionCreate メソッドは DMA トランザクションを作成します。

構文

NTSTATUS WdfDmaTransactionCreate(
  [in]           WDFDMAENABLER          DmaEnabler,
  [in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
  [out]          WDFDMATRANSACTION      *DmaTransaction
);

パラメーター

[in] DmaEnabler

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

[in, optional] Attributes

新しい DMA トランザクション オブジェクトのオブジェクト属性を指定する WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 (構造体の ParentObject メンバーは NULL である必要があります)。このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。

[out] DmaTransaction

DMA トランザクション オブジェクトへのハンドル。

戻り値

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

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INSUFFICIENT_RESOURCES
新しい DMA トランザクション オブジェクトを作成するためのメモリが不足していました。
 

WdfDmaTransactionCreate メソッドが返す可能性があるその他の戻り値の一覧については、「Framework オブジェクト作成エラー」を参照してください。

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

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

注釈

ドライバーが WdfDmaTransactionCreate を呼び出した後、WdfDmaTransactionExecute を呼び出す前に WdfDmaTransactionInitialize または WdfDmaTransactionInitializeUsingRequest を呼び出す必要があります。

指定した DMA イネーブラー オブジェクトは、新しい DMA トランザクション オブジェクトの親になります。 ドライバーはこの親を変更できません。 ParentObject メンバーまたは WDF_OBJECT_ATTRIBUTES 構造体は NULL である必要があります。

DMA トランザクションの詳細については、「DMA トランザクション の作成と初期化」を参照してください。

WdfDmaTransactionCreate を使用するコード例については、「WdfDmaTransactionExecute」を参照してください。

要件

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

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest