筛选模块状态和操作

筛选器驱动程序必须支持驱动程序管理的每个筛选器模块(筛选器驱动程序实例)的以下作状态:

分离
分离状态是筛选器模块的初始状态。 当筛选器模块处于此状态时,NDIS 可以调用筛选器驱动程序的 FilterAttach 函数,将筛选器模块附加到驱动程序堆栈。

正在附加
附加 状态下,筛选器驱动程序准备将筛选器模块附加到驱动程序堆栈。

已暂停
处于 暂停 状态,筛选器驱动程序不执行发送或接收作。

重新 启动
“重启”状态下,筛选器驱动程序完成重启筛选器模块所需的发送和接收操作。

运行
“正在运行” 状态下,筛选器驱动程序对筛选器模块执行正常发送和接收处理。

暂停
暂停 状态下,筛选器驱动程序完成停止筛选模块的发送和接收所需的任何操作。

下表中,标题是筛选器模块状态。 主要事件列在第一列中。 表中的其余条目指定筛选器模块在某个状态内发生事件后输入的下一个状态。 空白条目表示无效的事件/状态组合。

事件/状态 已分离 附加 已暂停 重新 启动 跑步 正在暂停

筛选器附加

附加

附件已完成

已暂停

过滤器卸载

已分离

筛选重启

重新 启动

重启已完成

跑步

暂停筛选功能

正在暂停

暂停已完成

已暂停

附件失败

已分离

重启失败

已暂停

发送和接收

跑步

正在暂停

OID 请求

已暂停

重新 启动

跑步

正在暂停

主要筛选器驱动程序事件的定义如下:

筛选器附加
NDIS 调用驱动程序的 FilterAttach 函数,用于将筛选器模块附加到驱动程序堆栈。 有关附加筛选器模块的详细信息,请参阅 附加筛选器模块

附加已完成
当筛选器模块处于 附加 状态并且筛选器驱动程序完成筛选模块所需的所有资源的初始化时,筛选器模块将进入 暂停 状态。

筛选器卸载
NDIS 调用驱动程序的 FilterDetach 函数,用于从驱动程序堆栈分离筛选器模块。 有关详细信息,请参阅 分离筛选器模块

筛选重启
NDIS 调用驱动程序的 FilterRestart 函数以重启暂停的筛选器模块。 有关详细信息,请参阅 “启动筛选器模块”。

重启已完成
当筛选器模块处于 重启 状态并且驱动程序已准备好执行发送和接收作时,筛选器模块将进入 “正在运行 ”状态。

过滤器暂停
NDIS 调用驱动程序的 FilterPause 函数以暂停筛选器模块。 有关详细信息,请参阅 暂停筛选器模块

暂停完成
驱动程序完成停止发送和接收作所需的所有作后,暂停作已完成,并且筛选器模块处于 暂停 状态。

附加失败
如果 NDIS 调用驱动程序的 FilterAttach 函数,并且附加操作失败(例如,因为所需的资源不可用),过滤模块将返回到 分离 状态。

重启失败
如果 NDIS 调用驱动程序的 FilterRestart 函数,并且重启尝试失败,筛选器模块将返回到 暂停 状态。

发送和接收操作
驱动程序可以处理 “正在运行 ”和 “暂停 ”状态中的发送和接收作。 有关发送和接收作的详细信息,请参阅 筛选器模块发送和接收作

OID 请求
驱动程序可以处理 “正在运行”、“ 正在重启”、“ 暂停”“暂停 ”状态中的 OID 请求。 有关 OID 请求的详细信息,请参阅 筛选器模块 OID 请求