重置

NDIS 可能会调用微型端口驱动程序的 或 MCM 驱动程序的 MiniportResetEx 函数来重置 NIC。

注意 在重置之前处于活动状态且有效的 AF、SAP 和 VC 句柄,重置后有效。

下图显示了向微型端口驱动程序发出重置请求的客户端。

显示客户端向微型端口驱动程序发出重置请求的关系图。

下图显示了向 MCM 驱动程序发出重置请求的客户端。

显示客户端向 MCM 驱动程序发出重置请求的示意图。

当面向连接的基础驱动程序重置 NIC 时,NDIS 会通过使用 NDIS_STATUS_RESET_START调用协议的 ProtocolCoStatusEx 函数来通知每个绑定协议。

当微型端口驱动程序或 MCM 驱动程序的 NIC 正在重置时,NDIS 不会接受协议发起的对微型端口驱动程序或 MCM 驱动程序的发送和请求。 在重置过程中,协议驱动程序不得尝试使用 NdisCoSendNetBufferLists 将数据包发送到微型端口驱动程序,也不得使用 NdisCoOidRequest 从微型端口驱动程序请求信息。

MiniportResetEx 执行重置 NIC 所需的任何与设备相关的操作。 MiniportResetEx 可以同步完成,也可以通过调用 NdisMResetComplete 以异步方式完成:

  • 如果重置同步完成,则 NDIS 使用 NDIS_STATUS_RESET_END调用每个绑定协议的 ProtocolCoStatusEx 函数。

  • 如果重置以异步方式完成,则 NDIS 使用 NDIS_STATUS_RESET_END调用每个绑定协议的 ProtocolCoStatusEx 函数。