SerCxGetActivity 函数 (sercx.h)

SerCxGetActivity 方法检索串行控制器驱动程序挂起的工作状态。

语法

void SerCxGetActivity(
  [in]      WDFDEVICE       Device,
  [in, out] PSERCX_ACTIVITY Activity
);

参数

[in] Device

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

[in, out] Activity

指向调用方分配 SERCX_ACTIVITY 结构的指针。 调用方必须先调用 SERCX_ACTIVITY_INIT 函数才能在初始使用之前初始化此结构。 此后,每个 SerCxGetActivity 调用更新此结构的内容,以跟踪可供控制器驱动程序处理的工作项。

返回值

没有

言论

串行控制器驱动程序调用此方法来接收它代表串行框架扩展(SerCx)执行的处理工作的摘要。 通常,SerCxGetActivity 由控制器驱动程序中的传输/接收 DPC 例程调用。

活动 参数指向描述控制器驱动程序挂起工作的 SERCX_ACTIVITY 结构。 SerCx 分配给控制器驱动程序的挂起工作由来自客户端的 I/O 请求驱动,但 I/O 请求不一定生成工作项。 例如,如果 SerCx 在其内存缓冲区中有足够的接收数据来完成挂起的读取请求,则此请求不会导致 接收SERCX_ACTIVITY 结构的成员设置为 TRUE。

若要循环访问挂起的工作项,传输/接收 DPC 例程调用 SerCxGetActivity,处理完整的传输或接收操作,然后再次调用 SerCxGetActivity,以确定其他类型的另一个操作是否需要工作。 如果另一个操作需要工作,则此工作可能在相同的回调期间开始,但如果从调用 SerCxProgressReceiveSerCxProgressTransmit 指示 DPC 例程重新计划自身以在以后运行,则必须停止此操作。

锁可保护由 SerCxGetActivity 调用更新的 SERCX_ACTIVITY 结构。 在调用期间,SerCx 中的事件处理程序获取此锁以更新控制器驱动程序当前挂起的工作摘要。

要求

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

另请参阅

SERCX_ACTIVITY

SERCX_ACTIVITY_INIT

SerCxCompleteWait

SerCxProgressReceive

SerCxProgressTransmit