SerCxProgressReceive 函数 (sercx.h)

SerCxProgressReceive 方法报告当前读取 (接收) 操作的进度。

语法

NTSTATUS SerCxProgressReceive(
  [in] WDFDEVICE    Device,
  [in] ULONG        BytesReceived,
  [in] SERCX_STATUS ReceiveStatus
);

参数

[in] Device

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

[in] BytesReceived

调用方加载到接收缓冲区的数据字节数,该缓冲区是通过对 SerCxRetrieveReceiveBuffer 方法的最新调用获取的。

[in] ReceiveStatus

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

  • SerCxStatusSuccess
  • SerCxStatusCancelled
  • SerCxStatusTimeout
有关这些值的详细信息,请参阅 SERCX_STATUS

返回值

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

返回代码 说明
STATUS_INVALID_PARAMETER
BytesReceived 值超出了可用的缓冲区长度;或 ReceiveStatus 值无效。
STATUS_INVALID_DEVICE_REQUEST
在错误的 IRQL 中调用了 方法;或 WDFDEVICE 句柄无效;或驱动程序尚未获取此接收操作的输入缓冲区。
STATUS_CANCELLED
已取消接收操作。

注解

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

如果 SerCxProgressReceive 未完成读取操作的所有未完成工作,调用方必须再次调用 SerCxRetrieveReceiveBuffer 方法以获取新的缓冲区描述符并继续接收数据。

要求

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

另请参阅

SERCX_STATUS

SerCxRetrieveReceiveBuffer