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

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

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

网络适配器进入空闲状态后,NDIS 将启动选择性挂起操作。 完成此操作后,网络适配器将被转换为低功耗状态。

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

如果 NDIS 检测到对网络适配器发出的 i/o 请求是从覆盖驱动程序发出的,或者如果适配器发出唤醒事件,NDIS 将取消空闲通知。 NDIS 通过调用微型端口驱动程序的 MiniportCancelIdleNotification 处理程序函数来实现此功能。

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

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