自定义交换机功能状态

Hyper-V 平台和 Hyper-V 可扩展交换机接口提供基础结构来获取可扩展交换机的自定义状态信息。 此信息称为 交换机功能状态 信息。

自定义交换机功能状态定义通过使用托管对象格式 (MOF) 类定义向 WMI 管理层注册。 除了定义自定义交换机功能状态定义的属性的结构成员外,MOF 类还必须包含以下内容:

  • 唯一标识自定义交换机功能状态定义的 UUID。

  • 唯一标识可扩展交换机扩展的 GUID。 此 GUID 声明为 MOF 类的 ExtensionId 限定符,并且必须与扩展的 INF 文件中声明的 NetCfgInstanceId 条目的值匹配。

  • 描述性类名字符串。 供应商的名称必须包含在字符串中。

下面显示了可扩展交换机的自定义功能状态定义的 MOF 类示例。

#pragma namespace("\\\\.\\root\\virtualization\\v2")

[ Dynamic,
  UUID("B3E57D77-8E95-4977-97DE-524F8DAF03E4"),
  ExtensionId("5CBF81BE-5055-47CD-9055-A76B2B4E369E"), 
  Provider("VmmsWmiInstanceAndMethodProvider"), 
  InterfaceVersion("1"),
  InterfaceRevison("0"),
  Locale(0x409),
  Description(
   "Fabricam, Inc. Switch custom feature status description.") : Amended,
  DisplayName("Fabricam, Inc. Switch custom feature status friendly name.") : Amended]
class Fabrikam_CustomSwitchData  : Msvm_EthernetSwitchFeatureSettingData{
    [ Read,
       Write,
       WmiDataId(1),
       InterfaceVersion("1"),
       InterfaceRevision("0"),
       Description(
         "The current status of custom feature on this switch.") : Amended]
     uint32 CurrentStatus = 0 ;
};

可扩展交换机的自定义功能状态定义的 MOF 类使用 MOF 编译器 (Mofcomp.exe) 在通用信息模型中注册 (CIM) 存储库中。 注册后,可以通过 PowerShell cmdlet 和基于 WMI 的应用程序程序配置 MOF 类。

以下示例演示必须输入的命令来注册文件 (Fabrikam_CustomSwitchData.mof) ,该文件包含自定义交换机功能状态定义的 MOF 类。

net stop vmms
mofcomp -N:root\virtualization\v2 Fabrikam_CustomSwitchData.mof
net start vmms

有关如何使用 MOF 编译器的详细信息,请参阅 编译驱动程序的 MOF 文件

以下示例演示如何使用自定义交换机功能状态定义来获取交换机数据。 在此示例中,Fabrikam_CustomSwitchData MOF 类用于从名为“TestSwitch”的交换机获取交换机状态。 Fabrikam, Inc. 扩展在 vSwitch“TestSwitch”上启用,状态返回 123。

PS C:\> $switchData = Get-VMSwitchExtensionSwitchData -SwitchName TestSwitch -FeatureId B3E57D77-8E95-4977-97DE-524F8DAF03E4
# Output the current value
PS C:\> $switchData$customSwitchData.Data.CurrentStatus
123

有关可扩展交换机扩展如何管理交换机功能状态信息的详细信息,请参阅 管理自定义交换机功能状态信息