スイッチ ポリシーの概要
NDIS 6.30 以降、Hyper-V 拡張可能スイッチでは、次の種類のポリシーがサポートされています。
組み込みのスイッチ ポリシー
組み込みのスイッチ ポリシーでは、拡張可能スイッチ インターフェイスによって適用されるプロパティを指定します。 拡張可能スイッチ ドライバー スタックの拡張機能は、これらのポリシーのプロパティを使用してプロビジョニングされません。
組み込みのスイッチ ポリシーには、一般的にスイッチ構成に影響を与えるが、個々のスイッチ ポート経由のトラフィック フローには影響しないプロパティが含まれます。 たとえば、このような組み込みポリシーの 1 つは、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする物理アダプターへのハードウェア オフロードを許可するようにスイッチを構成します。 このインターフェイスの詳細については、「シングル ルート I/O 仮想化 (SR-IOV)」を参照してください。
カスタム スイッチ ポリシー
カスタム スイッチ ポリシーでは、独立系ソフトウェア ベンダー (ISV) によって定義される独自のプロパティを指定します。 これらのプロパティは、拡張可能スイッチのプロトコル エッジによってプロビジョニングされ、カスタム スイッチ ポリシーを管理する基になる拡張機能によって適用されます。
ISV は、カスタム スイッチ プロパティの形式を定義します。 カスタム スイッチ プロパティの形式は ISV 専用です。
カスタム スイッチ プロパティは、マネージド オブジェクト形式 (MOF) クラス定義を使用して定義されます。 MOF ファイルが WMI 管理レイヤーに登録されると、基になる拡張機能がカスタム スイッチ ポリシーでプロビジョニングされます。
カスタム スイッチ プロパティは、NdisSwitchPropertyTypeCustom の NDIS_SWITCH_PROPERTY_TYPE 列挙値によって指定されます。 各カスタム スイッチ プロパティは、GUID 値を使用して一意に定義されます。 拡張機能は、プロパティの GUID 値を使用して構成されているカスタム スイッチ プロパティを管理します。
注: プロパティの GUID 値を使用して拡張機能を構成するメソッドは、ISV 専用です。
カスタム スイッチ ポリシーは、次の OID 要求を通じてプロビジョニングされます。
プロトコル エッジは、OID_SWITCH_PROPERTY_ADD の OID セット要求を発行して、基になる拡張機能にカスタム スイッチ プロパティの追加を通知します。
プロトコル エッジは、OID_SWITCH_PROPERTY_UPDATE の OID セット要求を発行して、基になる拡張機能にカスタム スイッチ プロパティへの更新を通知します。
プロトコル エッジは、OID_SWITCH_PROPERTY_DELETE の OID セット要求を発行して、基になる拡張機能にカスタム スイッチ プロパティの削除を通知します。
転送拡張機能は、OID 要求に拒否することで、新しいスイッチ ポリシーまたは更新されたスイッチ ポリシーのプロビジョニングをブロックできます。 拡張機能は、STATUS_DATA_NOT_ACCEPTED を使用して OID 要求を完了することによってこれを行います。 拡張機能が OID 要求を拒否しない場合は、NdisFOidRequest を呼び出して、OID 要求を拡張可能スイッチ制御パスに転送する必要があります。
注: 拡張機能が OID 要求を拒否しない場合は、要求が完了したときに状態を監視します。 拡張機能は、OID 要求が拡張可能スイッチ制御パスの基になる拡張機能によって拒否されたか、拡張可能スイッチ インターフェイスによって拒否されたかを判断するためにこれを行います。
スイッチ ポリシーとプロパティを管理する方法の詳細については、「スイッチ ポリシーの管理」を参照してください。