暂停适配器

NDIS 调用微型端口驱动程序的 MiniportPause 函数来启动暂停操作。 适配器将一直处于暂停状态,直到暂停操作完成。

在暂停状态下,微型端口驱动程序必须完成未完成的接收操作。 驱动程序还必须完成任何未完成的发送操作,并且应拒绝任何新的发送请求。

若要完成接收操作,驱动程序将等待对 NdisMIndicateReceiveNetBufferLists 函数的所有调用返回,并且 NDIS 必须将所有未完成 的NET_BUFFER_LIST 结构返回到微型端口驱动程序的 MiniportReturnNetBufferLists 函数。

若要完成未完成的发送操作,微型端口驱动程序应为所有未完成的 NET_BUFFER_LIST 结构调用 NdisMSendNetBufferListsComplete 函数。 驱动程序应立即拒绝对其 MiniportSendNetBufferLists 函数发出的任何新发送请求。

微型端口驱动程序完成所有未完成的发送和接收操作后,驱动程序必须以同步或异步方式完成暂停请求。 如果暂停操作以异步方式完成,驱动程序将调用 NdisMPauseComplete 以完成暂停请求。 完成暂停请求后,微型端口驱动程序将处于“已暂停”状态。

当微型端口驱动程序处于暂停状态时,NDIS 不会启动其他即插即用操作,例如停止、初始化、电源更改或重启操作。 在微型端口驱动程序处于“暂停”状态后,NDIS 可以启动这些即插即用操作。