暂停绑定

NDIS 向协议驱动程序发送网络即插即用 (PnP) 绑定的暂停事件通知后,绑定将进入暂停状态。

为了通知协议驱动程序 PnP 暂停事件,NDIS 调用 ProtocolNetPnPEvent 函数,NET_PNP_EVENT_NOTIFICATION 结构的 NetEvent 成员设置为 NetEventPauseBuffer 成员包含NDIS_PROTOCOL_PAUSE_PARAMETERS结构。

对于处于暂停状态的绑定,协议驱动程序:

  • 不应启动任何新的发送请求。

  • 必须等待未完成的发送请求完成。 暂停操作在 NDIS 针对驱动程序的所有未完成发送请求调用 ProtocolSendNetBufferListsComplete 函数之前不会完成。

  • 应像往常一样处理接收指示。 基础微型端口驱动程序在完成暂停操作之前等待未完成的接收数据返回。 这可确保在微型端口驱动程序暂停后驱动程序堆栈中没有正在进行的接收操作。

  • 应立即向 NDIS 返回新的接收指示。 如有必要,驱动程序可以复制此类接收指示,然后再返回它们。

有关协议驱动程序发送和接收操作的详细信息,请参阅 协议驱动程序发送和接收操作

完成协议驱动程序返回绑定的未完成接收指示,并且 NDIS 已完成绑定的所有未完成发送请求后,绑定将进入“已暂停”状态。

对于处于“暂停”状态的绑定,协议驱动程序:

  • 不得发出任何发送请求。

  • 应立即返回接收指示。 如有必要,驱动程序可以复制此类接收指示,然后再返回它们。