カスタム ポート機能の状態

Hyper-V プラットフォームと Hyper-V 拡張可能スイッチ インターフェイスは、拡張可能スイッチ ポートのカスタム状態情報を取得するためのインフラストラクチャを提供します。 この状態情報は、 ポート機能ステータス 情報と呼ばれます。

Hyper-V 拡張可能スイッチ ポート プロパティのカスタム機能状態定義は、マネージド オブジェクト形式 (MOF) クラス定義を使用して WMI 管理レイヤーに登録されます。 カスタム ポート機能の状態定義の属性を定義する構造体メンバーに加えて、MOF クラスには次のものも含まれている必要があります。

  • カスタム ポート機能ステータス定義を一意に識別する UUID。

  • 拡張可能なスイッチ拡張機能を一意に識別する GUID。 この GUID は MOF クラスの ExtensionId 修飾子として宣言されており、拡張機能の INF ファイルで宣言されている NetCfgInstanceId エントリの値と一致する必要があります。

  • わかりやすいクラス名の文字列。 ベンダーの名前を文字列に含める必要があります。

次に、拡張可能なスイッチ ポートのカスタム機能状態定義の MOF クラスの例を示します。

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

[ Dynamic,
  UUID("DAA0B7CC-74DB-41ef-8354-7002F9FA463E"),
  ExtensionId("5CBF81BE-5055-47CD-9055-A76B2B4E369E"), 
  Provider("VmmsWmiInstanceAndMethodProvider"), 
  InterfaceVersion("1"),
  InterfaceRevison("0"),
  Locale(0x409),
  Description("Fabricam, Inc. port custom feature status description.") : Amended,
  DisplayName("Fabricam, Inc.port custom feature status friendly name.") : Amended]
class Fabrikam_CustomPortData  : Msvm_EthernetPortData {
    [ Read,
       Write,
       WmiDataId(1),
      InterfaceVersion("1"),
      InterfaceRevision("0"),
       Description(
         "The current status of custom feature on this port.") : Amended]
     uint32 CurrentStatus = 0 ;
};

ポートのカスタム機能状態定義の MOF クラスは、MOF コンパイラ (Mofcomp.exe) を使用して共通情報モデル (CIM) リポジトリに登録されます。 登録後、MOF クラスは PowerShell コマンドレットと WMI ベースのアプリケーション プログラムを使用して構成できます。

次の例は、カスタム ポート機能の状態定義の MOF クラスを含むファイル (Fabrikam_CustomPortData.mof) を登録するために入力する必要があるコマンドを示しています。

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

MOF コンパイラの使用方法の詳細については、「ドライバーの MOF ファイルのコンパイル」を参照してください

次の例は、カスタム ポート機能ステータス定義を使用してポート データを取得する方法を示しています。 この例では、Fabrikam_CustomPortData MOF クラスを使用して、"TestVm" という名前の Hyper-V パーティションからポートの状態を取得します。 Fabrikam, Inc. 拡張機能は vSwitch "TestSwitch" で有効になっており、状態として 123 を返します。

PS C:\> $portData = Get-VMSwitchExtensionPortData -VmName TestVm -FeatureId DAA0B7CC-74DB-41ef-8354-7002F9FA463E
# Output the current value
PS C:\> $portData.Data.CurrentStatus
123

拡張可能スイッチ拡張機能でポート機能の状態情報を管理する方法の詳細については、「カスタム ポート機能の状態情報の管理」を参照してください