释放 NDIS 端口

微型端口驱动程序必须释放它在其 MiniportInitializeEx 函数中为微型端口适配器分配的所有 NDIS 端口。 它可以通过调用 NdisMFreePort 随时释放端口,下面所述的两种情况除外。

在以下情况下,微型端口驱动程序必须释放所有分配的端口:

  • 如果驱动程序的 MiniportInitializeEx 函数失败,则必须释放所有分配的端口。
  • 如果微型端口适配器已停止,驱动程序的 MiniportHaltEx 函数必须释放所有分配的端口。

在以下情况下,微型端口驱动程序不能简单地调用 NdisMFreePort

  • 如果端口是默认端口,则 NDIS 会自动释放它,因此微型端口驱动程序不得释放它。 如果尝试释放 默认端口NdisMFreePort 将返回NDIS_STATUS_INVALID_PORT错误。
  • 如果端口处于活动状态,微型端口驱动程序需要先停用它,然后再调用 NdisMFreePort

分配 NDIS 端口

停用 NDIS 端口

默认 NDIS 端口