NDIS_SWITCH_REFERENCE_SWITCH_NIC回调函数 (ndis.h)

ReferenceSwitchNic 函数递增连接到可扩展交换机端口的网络适配器的 Hyper-V 可扩展交换机引用计数器。

语法

NDIS_SWITCH_REFERENCE_SWITCH_NIC NdisSwitchReferenceSwitchNic;

NDIS_STATUS NdisSwitchReferenceSwitchNic(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in] NDIS_SWITCH_PORT_ID SwitchPortId,
  [in] NDIS_SWITCH_NIC_INDEX SwitchNicIndex
)
{...}

参数

[in] NdisSwitchContext

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

[in] SwitchPortId

一个NDIS_SWITCH_PORT_ID值,该值包含虚拟网络适配器连接到的可扩展交换机端口的唯一标识符。

[in] SwitchNicIndex

一个NDIS_SWITCH_NIC_INDEX值,该值指定要递增可扩展交换机引用计数器的虚拟网络适配器的索引。

有关NDIS_SWITCH_NIC_INDEX值的详细信息,请参阅 网络适配器索引值

注意 此参数必须指定处于连接状态的网络适配器的索引值。 无法指定处于创建或断开连接状态的网络适配器的索引值。 有关网络连接状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态
 

返回值

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

注解

可扩展交换机扩展调用 ReferenceSwitchNic 以递增连接到可扩展交换机端口的网络适配器的引用计数器。 虽然引用计数器具有非零值,但可扩展交换机的协议边缘不会发出对象标识符 (OID) 设置 OID_SWITCH_NIC_DELETE 请求以删除与适配器的连接。

扩展调用 ReferenceSwitchNic 后,必须调用 DereferenceSwitchNic 以递减可扩展交换机引用计数器。

扩展应在执行以下操作之前调用 ReferenceSwitchNic

注意 当通过可扩展交换机数据路径转发数据包时,该扩展不得调用 ReferenceSwitchNic 。 可扩展交换机接口为通过数据路径转发到端口和网络适配器连接的数据包管理自己的引用计数器。
 
在网络适配器连接达到网络适配器连接创建状态后,扩展将调用 ReferenceSwitchNic。 连接达到网络适配器断开连接或网络适配器已删除状态后,该扩展不得调用 ReferenceSwitchNic。 有关这些状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态
注意 当扩展调用 ReferenceSwitchNic 时,它不必将调用与其处理 OID 请求的代码同步。 因此,扩展可以调用 ReferenceSwitchNic ,而可扩展交换机的协议边缘发出 OID_SWITCH_NIC_DISCONNECT的 OID 请求。 但是,如果对 ReferenceSwitchNic 的调用以NDIS_STATUS_SUCCESS完成,则扩展仍可以在处理OID_SWITCH_NIC_DISCONNECT OID 请求后转发 OID_SWITCH_NIC_REQUEST OID 请求或 NDIS_STATUS_SWITCH_NIC_STATUS 状态指示。
 

要求

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

另请参阅

DereferenceSwitchNic

NDIS_STATUS_SWITCH_NIC_STATUS

NdisFGetOptionalSwitchHandlers

OID_SWITCH_NIC_DELETE

OID_SWITCH_NIC_DISCONNECT

OID_SWITCH_NIC_REQUEST