DMA_SUSPEND_HANDLER コールバック関数 (netdma.h)
Windows 8 以降で使用できます。
構文
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 は、次のいずれかの状態値を返します。
リターン コード | 形容 |
---|---|
|
操作が正常に完了しました。 |
|
指定されていない理由で操作が失敗しました。 |
備考
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 |