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