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
注释 仅对接收操作有效 SerCxStatusTimeout 值。 无法为传输操作指定间隔超时。 有关详细信息,请参阅 SERIAL_TIMEOUTS。
返回值
SerCxProgressTransmit 如果成功,则返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。
返回代码 | 描述 |
---|---|
|
BytesTransmitted 值超过可用的缓冲区长度;或 TransmitStatus 值无效。 |
|
在错误的 IRQL 中调用了该方法;或 WDFDEVICE 句柄无效;或驱动程序尚未获取此传输操作的输出缓冲区。 |
|
传输操作已取消。 |
言论
串行控制器驱动程序调用此方法来报告未完成的写入操作的进度。 通常,串行控制器驱动程序从其 DMA 完成回调(如果驱动程序使用 DMA 读取数据)或其传输/接收 DPC 函数(如果使用 PIO)调用此方法。
如果 SerCxProgressTransmit 调用未完成写入操作的所有未完成工作,则调用方必须再次调用 SerCxRetrieveTransmitBuffer 以获取新的缓冲区描述符并继续传输数据。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始可用。 |
目标平台 | 普遍 |
标头 | sercx.h |
IRQL | <= DISPATCH_LEVEL |