NDIS 如何检测空闲的网络适配器

在微型端口驱动程序启用 NDIS 选择性挂起并注册其处理程序函数后,NDIS 按以下方式监视网络适配器的 I/O 活动:

如果网络适配器在空闲超时期间未检测到适配器上的任何活动,则 NDIS 确定该网络适配器处于空闲状态。 此超时期限的持续时间由 *SSIdleTimeout 标准化 INF 关键字 (keyword) 的值指定。 有关此关键字 (keyword) 的详细信息,请参阅 NDIS 选择性挂起的标准化 INF 关键字

网络适配器变为空闲状态后,NDIS 将启动选择性挂起操作。 通过此操作,网络适配器通过将其转换为低功耗状态将其挂起。

NDIS 通过向微型端口驱动程序发出空闲通知来开始此选择性挂起操作。 NDIS 通过调用驱动程序的 MiniportIdleNotification 处理程序函数来执行此操作。 有关微型端口驱动程序如何处理此通知的详细信息,请参阅 处理 NDIS 选择性挂起空闲通知

如果 NDIS 检测到对网络适配器的 I/O 请求是从覆盖驱动程序发出的,或者适配器发出唤醒事件信号,则 NDIS 将取消空闲通知。 NDIS 通过调用微型端口驱动程序的 MiniportCancelIdleNotification 处理程序函数来执行此操作。

有关 NDIS 如何取消空闲通知的详细信息,请参阅 取消 NDIS 选择性挂起空闲通知

有关微型端口驱动程序如何完成空闲通知的详细信息,请参阅 完成 NDIS 选择性挂起空闲通知