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

驱动程序框架调用驱动程序的 EvtDeviceD0ExitEvtDeviceD0ExitPreInterruptsDisabled 事件回调函数,以告知驱动程序准备串行控制器退出 D0 设备状态。 作为响应,此函数首先取消 准备发送(RTS)行,以告知设备在串行连接的另一端不发送更多数据。 接下来,函数调用 SerCx2SaveReceiveFifoOnD0Exit

SerCx2SaveReceiveFifoOnD0Exit 调用驱动程序的 EvtSerCx2PioReceiveReadBuffer 事件回调函数以从接收 FIFO 中检索数据。 在此调用中,SerCx2 以参数的形式提供指向 SerCx2 维护的内部软件缓冲区的指针,目的是保存接收 FIFO 中的未读数据,以准备进入低功率状态。

稍后,在客户端向串行控制器发送读取(IRP_MJ_READ)请求后,SerCx2 会将字节从此内部软件缓冲区复制到请求中的读取缓冲区。

要求

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

另请参阅

EvtDeviceD0Exit

EvtDeviceD0ExitPreInterruptsDisabled

EvtSerCx2PioReceiveReadBuffer

IRP_MJ_READ

SERCX2PIORECEIVE

SerCx2PioReceiveCreate