NdisMFreePort 函数 (ndis.h)

NdisMFreePort 函数释放以前使用 NdisMAllocatePort 函数分配的 NDIS 端口

语法

NDIS_STATUS NdisMFreePort(
       NDIS_HANDLE      NdisMiniportHandle,
  [in] NDIS_PORT_NUMBER PortNumber
);

参数

NdisMiniportHandle

微型端口适配器处理 NDIS 传递给 MiniportAdapterHandle 参数的 MiniportInitializeEx 函数。

[in] PortNumber

NDIS 应释放的 NDIS 端口数。 PortNumber 值是具有 ULONG 数据类型的 NDIS_PORT_NUMBER 值。 NDIS 在 的 PortNumber 成员中提供了端口号 微型端口驱动程序调用 NdisMAllocatePort 函数时,NDIS_PORT_CHARACTERISTICS结构。

端口号可以是 1 到 0xffffff的数字。 不能将 PortNumber 设置为零,这表示默认端口。

返回值

NdisMFreePort 可以返回以下值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
NDIS 已成功释放端口的资源。
NDIS_STATUS_INVALID_PORT
NDIS 无法释放端口的资源,因为端口号无效。
NDIS_STATUS_INVALID_PORT_STATE
NDIS 无法释放端口的资源,因为端口处于自由操作无效的状态。 若要释放端口,端口必须处于已分配状态。
NDIS_STATUS_INVALID_DATA
PortNumber 参数中提供的端口号无效。

注解

如果微型端口驱动程序通过调用 NdisMAllocatePort 函数分配了端口,则驱动程序必须先释放该端口,然后才能从其 MiniportHaltEx 函数返回。 如果微型端口驱动程序通过发出 NetEventPortActivation 即插即用 (PnP) 事件来激活端口,则在释放端口之前,驱动程序必须为该端口发出 NetEventPortDeactivation PnP 事件。

当微型端口驱动程序调用 NdisMFreePort 以释放端口时,NDIS 还会释放分配给已释放端口的端口号,以便 NDIS 可以重复使用端口号。

微型端口驱动程序不得尝试释放默认端口。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_Miniport_Driver_Function (ndis)

另请参阅

默认 NDIS 端口

释放 NDIS 端口

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort