微型端口驱动程序停止处理程序

NDIS 微型端口驱动程序必须向 NdisMRegisterMiniportDriver 提供 MiniportHaltEx 函数。

MiniportHaltEx 应撤消 MiniportInitializeEx 执行的所有操作。 例如,NDIS 微型端口驱动程序可能:

下图演示了卸载微型端口驱动程序。

说明卸载微型端口驱动程序的过程的关系图。

MiniportHaltEx 应在返回之前完成卸载驱动程序所需的操作。 如果微型端口驱动程序具有任何未完成的接收指示 (即已收到它已指示到 NDIS 但 NDIS 尚未返回) 的网络数据, 则 MiniportHaltEx 不得返回,直到此类数据返回到微型端口驱动程序的 MiniportReturnNetBufferLists 函数。

上图显示了一组可由 MiniportHaltEx 函数进行的调用。 这些调用只是可以进行的调用的子集。 实际的调用集取决于微型端口驱动程序的先前操作。 如果微型端口驱动程序由于硬件问题或无法获取所需的资源而无法成功初始化网络适配器,则微型端口驱动程序可以在 MiniportInitializeEx 中执行这些相同的调用。 在这种情况下, MiniportInitializeEx 应通过撤消驱动程序以前的操作来卸载驱动程序。 否则, MiniportHaltEx 将撤消 MiniportInitializeEx 的操作。

以下列表描述了反向微型端口驱动程序可能执行的某些操作所需的调用:

微型端口驱动程序的适配器状态

释放 NDIS 端口

停止微型端口适配器

微型端口适配器状态和操作

微型端口驱动程序重置和停止函数