NDIS_SWITCH_REFERENCE_SWITCH_PORT回调函数 (ndis.h)

ReferenceSwitchPort 函数递增可扩展交换机端口的 Hyper-V 可扩展交换机引用计数器。

语法

NDIS_SWITCH_REFERENCE_SWITCH_PORT NdisSwitchReferenceSwitchPort;

NDIS_STATUS NdisSwitchReferenceSwitchPort(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in] NDIS_SWITCH_PORT_ID SwitchPortId
)
{...}

参数

[in] NdisSwitchContext

一个 NDIS_SWITCH_CONTEXT 值,该值包含 Hyper-V 可扩展交换机扩展所附加到的可扩展交换机模块的句柄。 当扩展调用 NdisFGetOptionalSwitchHandlers 时,此句柄通过 NdisSwitchContext 参数返回。

[in] SwitchPortId

一个 NDIS_SWITCH_PORT_ID 值,该值包含可扩展交换机引用计数器递增的可扩展交换机端口的唯一标识符。

注意SwitchPortId 参数必须指定处于创建状态的端口的标识符。 无法指定处于拆解或删除状态的端口的标识符。 有关端口状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态
 

返回值

如果调用成功,该函数将返回NDIS_STATUS_SUCCESS。 否则,它将返回在 Ndis.h 中定义的 NDIS_STATUS_Xxx 错误代码。

注解

可扩展交换机扩展调用 ReferenceSwitchPort 以递增可扩展交换机端口的引用计数器。 虽然引用计数器具有非零值,但可扩展交换机的协议边缘不会发出对象标识符 (OID) OID_SWITCH_PORT_DELETE 的一组请求来删除可扩展交换机端口。

扩展调用 ReferenceSwitchPort 后,必须调用 DereferenceSwitchPort 以递减引用计数器。

该扩展在端口达到“已创建端口”状态后调用 ReferenceSwitchPort。 在连接达到“端口正在断开”或“端口未创建”状态后,扩展不得调用 ReferenceSwitchPort。 有关这些状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态

当扩展执行要求端口处于活动状态的任何操作时,它必须调用 ReferenceSwitchPort 。 例如,扩展必须先调用 ReferenceSwitchPort ,然后才能发出 OID_SWITCH_PORT_PROPERTY_ENUM的 OID 方法请求。

该扩展在端口达到“已创建端口”状态后调用 ReferenceSwitchPort。 在端口达到“端口正在拆解”状态后,扩展不得调用 ReferenceSwitchNic。 有关这些状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态

注意 当扩展调用 ReferenceSwitchPort 时,它不必将调用与其处理 OID 请求的代码同步。 因此,扩展可能会调用 ReferenceSwitchPort ,而可扩展交换机的协议边缘发出 OID_SWITCH_PORT_TEARDOWN的 OID 请求。 但是,如果对 ReferenceSwitchPort 的调用以NDIS_STATUS_SUCCESS完成,则扩展在处理 OID_SWITCH_PORT_TEARDOWN OID 请求后仍可以发出OID_SWITCH_PORT_PROPERTY_ENUM OID 请求。
 

要求

要求
最低受支持的客户端 在 NDIS 6.30 及更高版本中受支持。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

DereferenceSwitchNic

NdisFGetOptionalSwitchHandlers

OID_SWITCH_PORT_DELETE

OID_SWITCH_PORT_PROPERTY_ENUM

OID_SWITCH_PORT_TEARDOWN