MINIPORT_IDLE_NOTIFICATION回调函数 (ndis.h)
NDIS 调用 MiniportIdleNotification 处理程序函数,以在空闲网络适配器上启动 NDIS 选择性挂起作。 通过此作,网络适配器挂起并转换为低功率状态。
语法
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
参数
[in] MiniportAdapterContext
微型端口驱动程序在其 MiniportInitializeEx 函数中分配的上下文区域的句柄。 微型端口驱动程序使用此上下文区域来维护网络适配器的状态信息。
[in] ForceIdle
BOOLEAN 值,当设置为 true时,指定微型端口驱动程序不得否决空闲通知,并且必须继续执行低功率状态转换。
有关 ForceIdle 参数的详细信息,请参阅“备注”部分。
返回值
MiniportIdleNotification 返回以下状态值之一:
返回代码 | 描述 |
---|---|
NDIS_STATUS_PENDING | 微型端口驱动程序已成功处理空闲通知。 通知处于挂起状态,直到微型端口驱动程序调用 NdisMIdleNotificationComplete。 注意: 微型端口驱动程序不得从 MiniportIdleNotification返回NDIS_STATUS_SUCCESS。 |
NDIS_STATUS_BUSY | 微型端口驱动程序否决了空闲通知,因为网络适配器仍在使用。 注意:如果 ForceIdle 参数设置为 TRUE,则MiniportIdleNotification 不得返回此状态代码。 |
NDIS_STATUS_FAILURE | 微型端口驱动程序无法成功颁发特定于总线的 IRP。 |
言论
支持 NDIS 选择性挂起接口的微型端口驱动程序需要 MiniportIdleNotification 处理程序函数。 有关驱动程序如何注册其选择性挂起处理程序函数的详细信息,请参阅 注册 NDIS 选择性挂起处理程序函数。
NDIS 将 ForceIdle 参数设置为在网络适配器处于非活动状态的时间超过空闲超时时间段时 FALSE。 因此,NDIS 选择性地暂停 网络适配器。
空闲超时期限的持续时间由 *SSIdleTimeout INF 关键字的值指定。 有关此关键字的详细信息,请参阅 NDIS 选择性挂起的标准化 INF 关键字。
注意
仅当符合 AlwaysOn Always Connected(AOAC)技术的系统正在转换为连接待机状态时,NDIS 才会将 ForceIdle 参数设置为 true。
如果微型端口驱动程序确定正在使用网络适配器,则可以通过返回NDIS_STATUS_BUSY来否决空闲通知请求。 这会导致 NDIS 重启网络适配器上的活动监视器。
如果适配器在空闲超时期间再次变为非活动状态,NDIS 将调用 MiniportIdleNotification。
注意
如果 ForceIdle 参数设置为 TRUE,则微型端口驱动程序不得返回NDIS_STATUS_BUSY。
发出空闲通知后,可以通过以下方式取消和完成该通知:
如果满足以下条件,NDIS 可以取消未完成的空闲通知:
- 过度的协议或筛选器驱动程序会向微型端口驱动程序发出发送数据包请求或 OID 请求。
- 基础适配器发出唤醒事件信号,例如接收与 LAN 唤醒模式(WOL)模式匹配的数据包,或检测其媒体连接状态的变化。
NDIS 通过调用 MiniportCancelIdleNotification来取消空闲通知。 调用此处理程序函数时,微型端口驱动程序会取消以前针对空闲通知发出的任何特定于总线的 IRP。 最后,微型端口驱动程序调用 NdisMIdleNotificationComplete 以完成空闲通知。
网络适配器处于低功率状态后,微型端口驱动程序可以完成空闲通知本身,以便将适配器恢复为全电源状态。 执行此作的原因特定于驱动程序和适配器的设计和要求。
微型端口驱动程序通过调用 NdisMIdleNotificationComplete来完成空闲通知。 有关微型端口驱动程序如何完成空闲通知的详细信息,请参阅 完成 NDIS 选择性挂起空闲通知。
有关如何处理 NDIS 选择性挂起的空闲通知的详细信息,请参阅 处理 NDIS 选择性挂起空闲通知。
有关如何实现 MiniportIdleNotification 处理程序函数的指南,请参阅 实现 MiniportIdleNotification 处理程序函数。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
目标平台 | 窗户 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | PASSIVE_LEVEL |