次の方法で共有


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
ヘッダー wdfdmatransaction.h (Wdf.h を含む)
図書館 Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest