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 提供程序在 pProviderChannelContext 参数中指定的位置将此句柄返回到 NetDMA ProviderAllocateDmaChannel 函数。

[out] pLastDescriptor

指向包含上次成功处理 DMA 描述符的物理地址的变量的指针。 DMA 提供程序在从 ProviderSuspendDma 返回之前提供此地址。

返回值

ProviderSuspendDma 返回以下状态值之一:

返回代码 说明
STATUS_SUCCESS
操作已成功完成。
STATUS_UNSUCCESSFUL
由于未指定的原因,操作失败。

注解

ProviderSuspendDma 函数是 NetDMA 提供程序的可选函数。 NetDMA 接口可以调用 ProviderSuspendDma 函数(如果有的话)以暂时挂起 DMA 通道上正在进行的任何 DMA 传输。

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

另请参阅

NET_DMA_CHANNEL_PARAMETERS

ProviderAllocateDmaChannel

ProviderResumeDma