次の方法で共有


DMA_SUSPEND_HANDLER コールバック関数 (netdma.h)

NetDMA インターフェイスはサポートされていません

Windows 8 以降で使用できます。

 
ProviderSuspendDma 関数は、DMA チャネルで現在進行中の DMA 転送を中断します。

構文

DMA_SUSPEND_HANDLER DmaSuspendHandler;

NTSTATUS DmaSuspendHandler(
  [in]  PVOID ProviderChannelContext,
  [out] PPHYSICAL_ADDRESS *pLastDescriptor
)
{...}

パラメーター

[in] ProviderChannelContext

DMA チャネルのコンテキスト領域を識別するポインター。 DMA プロバイダーは、このハンドルを NetDMA の pProviderChannelContext パラメーターで指定された場所に返しました。ProviderAllocateDmaChannel 関数を します。

[out] pLastDescriptor

最後に正常に処理された DMA 記述子の物理アドレスを含む変数へのポインター。 DMA プロバイダーは、ProviderSuspendDmaから戻る前に、このアドレスを提供します。

戻り値

ProviderSuspendDma は、次のいずれかの状態値を返します。

リターン コード 形容
STATUS_SUCCESS
操作が正常に完了しました。
STATUS_UNSUCCESSFUL
指定されていない理由で操作が失敗しました。

備考

ProviderSuspendDma 関数は、NetDMA プロバイダーの省略可能な関数です。 NetDMA インターフェイスは、ProviderSuspendDma 関数 (存在する場合) を呼び出して、DMA チャネルで進行中の DMA 転送を一時的に中断できます。

DMA プロバイダーは、ProviderSuspendDmaから戻る前に、現在の DMA 記述子の転送を完了します。 完了状態レポートが有効になっている場合、DMA エンジンは、CompletionVirtualAddress で指定されたアドレスに NetDmaTransferStatusSuspend 状態を書き込み、CompletionPhysicalAddress メンバーを します。 NET_DMA_CHANNEL_PARAMETERS 構造体。

DMA 転送が中断されている間、NetDMA インターフェイスは DMA 記述子のリンク リストを変更できます (記述子の挿入や削除など)。

NetDMA インターフェイスは、ProviderResumeDma 関数を呼び出して、ProviderSuspendDma 呼び出すことによって中断された DMA 操作を再開します。

NetDMA は、IRQL <= DISPATCH_LEVEL で ProviderSuspendDma 呼び出します。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista の NetDMA 1.0 ドライバーでサポートされています。
ターゲット プラットフォーム ウィンドウズ
ヘッダー netdma.h (Netdma.h を含む)
IRQL <= DISPATCH_LEVEL

関連項目

NET_DMA_CHANNEL_PARAMETERS

ProviderAllocateDmaChannel

ProviderResumeDma