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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
無効なパラメーターが検出されました。 |
|
新しい 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) |