SerCx2SaveReceiveFifoOnD0Exit 函数 (sercx.h)
SerCx2SaveReceiveFifoOnD0Exit 方法通知串行框架扩展版本 2(SerCx2),串行控制器硬件的接收 FIFO 包含应在串行控制器进入设备低功率状态之前保存的数据。
语法
void SerCx2SaveReceiveFifoOnD0Exit(
[in] SERCX2PIORECEIVE PioReceive,
[in] ULONG FifoSize
);
参数
[in] PioReceive
PIO 接收对象的 SERCX2PIORECEIVE 句柄。 串行控制器驱动程序以前调用 SerCx2PioReceiveCreate 方法来创建此对象。
[in] FifoSize
传输 FIFO 包含的未读数据的字节数。
返回值
没有
言论
当串行控制器即将进入低功率状态时,SerCx2 和串行控制器驱动程序必须保存可能保留在接收 FIFO 中的未读数据的任何字节。 否则,当串行控制器进入低功率状态时,此数据将丢失。 若要请求 SerCx2 的帮助以保存此数据,驱动程序调用 SerCx2SaveReceiveFifoOnD0Exit。
驱动程序框架调用驱动程序的 EvtDeviceD0Exit 或 EvtDeviceD0ExitPreInterruptsDisabled 事件回调函数,以告知驱动程序准备串行控制器退出 D0 设备状态。 作为响应,此函数首先取消 准备发送(RTS)行,以告知设备在串行连接的另一端不发送更多数据。 接下来,函数调用 SerCx2SaveReceiveFifoOnD0Exit。
SerCx2SaveReceiveFifoOnD0Exit 调用驱动程序的 EvtSerCx2PioReceiveReadBuffer 事件回调函数以从接收 FIFO 中检索数据。 在此调用中,SerCx2 以参数的形式提供指向 SerCx2 维护的内部软件缓冲区的指针,目的是保存接收 FIFO 中的未读数据,以准备进入低功率状态。
稍后,在客户端向串行控制器发送读取(IRP_MJ_READ)请求后,SerCx2 会将字节从此内部软件缓冲区复制到请求中的读取缓冲区。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从Windows 8.1开始可用。 |
目标平台 | 普遍 |
标头 | sercx.h |
IRQL | PASSIVE_LEVEL |