DMA_SUSPEND_HANDLER コールバック関数 (netdma.h)
Windows 8以降。
構文
DMA_SUSPEND_HANDLER DmaSuspendHandler;
NTSTATUS DmaSuspendHandler(
[in] PVOID ProviderChannelContext,
[out] PPHYSICAL_ADDRESS *pLastDescriptor
)
{...}
パラメーター
[in] ProviderChannelContext
DMA チャネルのコンテキスト領域を識別するポインター。 DMA プロバイダーは、 の pProviderChannelContext パラメーターで指定された場所で、このハンドルを NetDMA に返しました ProviderAllocateDmaChannel 関数。
[out] pLastDescriptor
最後に正常に処理された DMA 記述子の物理アドレスを含む変数へのポインター。 DMA プロバイダーは、 ProviderSuspendDma から戻る前にこのアドレスを提供します。
戻り値
ProviderSuspendDma は、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
指定されていない理由で操作が失敗しました。 |
注釈
ProviderSuspendDma 関数は、NetDMA プロバイダーの省略可能な関数です。 NetDMA インターフェイスは ProviderSuspendDma 関数 (存在する場合) を呼び出して、DMA チャネルで進行中の DMA 転送を一時的に中断できます。
DMA プロバイダーは、 ProviderSuspendDma から返される前に、現在の DMA 記述子の転送を完了します。 完了状態レポートが有効になっている場合、DMA エンジンは、CompletionVirtualAddress メンバーと CompletionPhysicalAddress メンバーで指定されたアドレスに NetDmaTransferStatusSuspend 状態を書き込みます。 NET_DMA_CHANNEL_PARAMETERS 構造体。
DMA 転送が中断されている間、NetDMA インターフェイスは DMA 記述子リンク リストを変更できます (記述子の挿入や削除など)。
NetDMA インターフェイスは ProviderResumeDma 関数を呼び出して、 ProviderSuspendDma を呼び出して中断された DMA 操作を再開します。
NetDMA は、IRQL <= DISPATCH_LEVEL で ProviderSuspendDma を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NetDMA 1.0 ドライバーでサポートされています。 |
対象プラットフォーム | Windows |
ヘッダー | netdma.h (Netdma.h を含む) |
IRQL | <= DISPATCH_LEVEL |