次の方法で共有


EVT_WDF_RESERVE_DMA コールバック関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

EvtReserveDma イベント コールバック関数は、フレームワークにトランザクションを実行および解放するための予約済みリソースがある場合に呼び出されます。 予約済みリソースには、マップ レジスタと WDM DMA アダプターのロックが含まれます。

構文

EVT_WDF_RESERVE_DMA EvtWdfReserveDma;

void EvtWdfReserveDma(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] PVOID Context
)
{...}

パラメーター

[in] DmaTransaction

DMA リソースが割り当てられたトランザクションを表す DMA トランザクション オブジェクトへのハンドル。

[in] Context

WdfDmaTransactionAllocateResources の以前の呼び出しでドライバーが指定したコンテキスト ポインター。

戻り値

なし

解説

ドライバーは、WdfDmaTransactionAllocateResources を呼び出して EvtReserveDma イベント コールバック関数を登録します。

関連付けられたトランザクション オブジェクトで排他的に使用するために DMA リソースが割り当てられている場合、フレームワークはドライバーの EvtReserveDma イベント コールバック関数を呼び出します。 ドライバーは、この予約を保持しながら、トランザクションを複数回初期化して実行できます。

ドライバーは通常、 EvtReserveDma イベント コールバック関数内からトランザクションを初期化して開始します。 予約シーケンスの詳細については、「 DMA リソースの予約」を参照してください。

ドライバーは、EvtReserveDma 内から WdfDmaTransactionFreeResources を呼び出す場合があります。

Windows 8より前のオペレーティング システムでは、パケット モード DMA イネーブラーを指定するイネーブラーと共に EvtReserveDma を使用する必要があります。 Windows 8以降、EvtReserveDma は、システム モード DMA イネーブラーを指定するイネーブラーでも使用できます。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.11
Header wdfdmatransaction.h (Wdf.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

WdfDmaTransactionAllocateResources

WdfDmaTransactionFreeResources