SerCxProgressTransmit 函数 (sercx.h)

SerCxProgressTransmit 方法报告当前写入(传输)操作的进度。

语法

NTSTATUS SerCxProgressTransmit(
  [in] WDFDEVICE    Device,
  [in] ULONG        BytesTransmitted,
  [in] SERCX_STATUS TransmitStatus
);

参数

[in] Device

表示串行控制器的框架设备对象的 WDFDEVICE 句柄。

[in] BytesTransmitted

调用方从传输缓冲区复制的数据字节数,该传输缓冲区是通过对 SerCxRetrieveTransmitBuffer 方法获取的。

[in] TransmitStatus

传输操作的当前状态。 将此参数设置为以下值之一:

  • SerCxStatusSuccess
  • SerCxStatusCancelled
有关这些值的详细信息,请参阅 SERCX_STATUS
注释 仅对接收操作有效 SerCxStatusTimeout 值。 无法为传输操作指定间隔超时。 有关详细信息,请参阅 SERIAL_TIMEOUTS
 

返回值

SerCxProgressTransmit 如果成功,则返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。

返回代码 描述
STATUS_INVALID_PARAMETER
BytesTransmitted 值超过可用的缓冲区长度;或 TransmitStatus 值无效。
STATUS_INVALID_DEVICE_REQUEST
在错误的 IRQL 中调用了该方法;或 WDFDEVICE 句柄无效;或驱动程序尚未获取此传输操作的输出缓冲区。
STATUS_CANCELLED
传输操作已取消。

言论

串行控制器驱动程序调用此方法来报告未完成的写入操作的进度。 通常,串行控制器驱动程序从其 DMA 完成回调(如果驱动程序使用 DMA 读取数据)或其传输/接收 DPC 函数(如果使用 PIO)调用此方法。

如果 SerCxProgressTransmit 调用未完成写入操作的所有未完成工作,则调用方必须再次调用 SerCxRetrieveTransmitBuffer 以获取新的缓冲区描述符并继续传输数据。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 普遍
标头 sercx.h
IRQL <= DISPATCH_LEVEL

另请参阅

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer