NdisMCompleteDmaTransfer 宏 (ndis.h)

NdisMCompleteDmaTransfer 函数指示系统 DMA 传输操作已完成。 它将重置系统 DMA 控制器,为进一步的 DMA 传输做准备。

语法

void NdisMCompleteDmaTransfer(
   _S,
   _H,
   _B,
   _O,
   _L,
   _M_
);

参数

_S

指向调用方提供的变量的指针,在此变量中,此函数返回 DMA 传输的最终状态,可以是以下状态之一:

NDIS_STATUS_SUCCESS

数据已传输并刷新到主机内存或设备,以保持数据完整性。

NDIS_STATUS_RESOURCES

DMA 控制器已释放,但数据传输可能不连贯。

_H

MiniportInitializeEx 函数调用 时返回的句柄 NdisMRegisterDmaChannel 函数。

_B

指向先前传递给 NdisMSetupDmaTransfer 的缓冲区描述符的指针。

_O

开始传输的字节偏移量。 此值也传递给 NdisMSetupDmaTransfer

_L

传输的长度(以字节为单位)。 此值也传递给 NdisMSetupDmaTransfer

_M_

如果从主机传输到 NIC(例如,发送操作),则为 TRUE

返回值

备注

必须先调用 NdisMCompleteDmaTransfer,并将 WriteToDevice 设置为 TRUE,然后传输的数据才会被视为存在于 NIC 的内存中。 必须先调用 NdisMCompleteDmaTransfer,并将 WriteToDevice 设置为 FALSE,然后才能从主机内存中读取传输的数据。

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 NdisMCompleteDmaTransfer (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisMCompleteDmaTransfer (NDIS 5.1) ) 。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_MCO_Function (ndis)

另请参阅

MiniportInitializeEx

NdisMRegisterDmaChannel

NdisMSetupDmaTransfer