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_SWITCH_PORT_DELETE 的对象标识符(OID)集请求来删除可扩展交换机端口。

扩展调用 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