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 传输。
在从 ProviderSuspendDma 返回之前,DMA 提供程序完成当前 DMA 描述符的传输。 如果启用完成状态报告,则 DMA 引擎会将 NetDmaTransferStatusSuspend 状态写入在 中的 CompletionVirtualAddress 和 CompletionPhysicalAddress 成员中指定的地址中 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 |