ポート ポリシーの管理
Hyper-V 拡張可能スイッチのフィルターリングと転送の拡張機能は、標準およびカスタムのポート プロパティのプロパティを使用してプロビジョニングできます。 プロビジョニングされると、これらの拡張機能は、拡張可能スイッチのイングレス データ パスで取得されたパケットをフィルターリングするときにポリシーを執行します。 これらのポリシーの詳細については、「ポート ポリシー」をご覧ください。
Hyper-V 拡張可能スイッチ インターフェイスでは、次のオブジェクト識別子 (OID) を使用して、標準およびカスタムのポート ポリシーのプロパティを使用して、フィルターリングと転送の拡張機能をプロビジョニングします。
OID_SWITCH_PORT_PROPERTY_ADD
この OID 設定要求は、WMI 管理レイヤーのプロパティの追加を基盤の拡張機能に通知するために、拡張可能スイッチのプロトコル エッジによって発行されます。 InformationBuffer (NDIS_OID_REQUEST 構造体内) には NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 構造体へのポインターが含まれています。
注: カスタム ポートプロパティは NDIS_SWITCH_PORT_PROPERTY_TYPE リスト値 NdisSwitchPortPropertyTypeCustom によって指定されます。 標準ポートプロパティは、NDIS_SWITCH_PORT_PROPERTY_TYPE リスト値 NdisSwitchPortPropertyTypeSecurity、NdisSwitchPortPropertyTypeVlan、NdisSwitchPortPropertyTypeProfile などによって指定されます。
OID_SWITCH_PORT_PROPERTY_UPDATE
この OID 設定要求は、WMI 管理レイヤーのプロパティの更新を基盤の拡張機能に通知するために、拡張可能スイッチのプロトコル エッジによって発行されます。 InformationBuffer (NDIS_OID_REQUEST 構造体内) には NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 構造体へのポインターが含まれています。
OID_SWITCH_PORT_PROPERTY_DELETE
この OID 設定要求は、WMI 管理レイヤーのプロパティの削除を基盤の拡張機能に通知するために、拡張可能スイッチのプロトコル エッジによって発行されます。 InformationBuffer (NDIS_OID_REQUEST 構造体内) には NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 構造体へのポインターが含まれています。
OID_SWITCH_PORT_PROPERTY_ENUM
この OID メソッド要求は、拡張可能スイッチの指定されたポートに対して現在構成されているプロパティに関する拡張可能スイッチの基盤のミニポート エッジをクエリするために、拡張機能によって送信されます。 InformationBuffer (NDIS_OID_REQUEST 構造体内) には、バッファーへのポインターが含まれています。 このバッファーには、次のデータが含まれています。
指定したポートのポリシー リストのパラメーターを指定する NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS 構造体。
NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO 構造体の配列。 これらの各構造体には、拡張可能スイッチ ポート ポリシーのプロパティに関する情報が含まれています。
注:NumProperties メンバー (NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS 構造体内) が 0 に設定されている場合、NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO 構造体は返されません。
注: 拡張機能は、OID 設定要求 OID_SWITCH_PORT_PROPERTY_ADD を生成してはなりません。 OID_SWITCH_PORT_PROPERTY_UPDATE、またはOID_SWITCH_PORT_PROPERTY_DELETE。
拡張可能スイッチ拡張機能は、 OID 設定要求OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE または OID_SWITCH_PORT_PROPERTY_DELETE を処理するとき、次のガイドラインに従う必要があります。
拡張機能は、OID 要求に関連付けられている NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 構造体や NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 構造体を変更できません。
拡張機能は、プロパティを管理する場合、これらの OID 要求を処理する必要があります。 OID 要求に応じて、拡張機能は、ポート プロパティを管理するかどうかを判断する NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 構造体や NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 構造体の次のメンバーを検査する必要があります。
PropertyType メンバー。 このメンバーは、このプロパティの型を指定します。 カスタム ポート プロパティには、PropertyType メンバー値 NdisSwitchPortPropertyTypeCustom があります。 標準ポートのプロパティには、他のプロパティ タイプ値があります。 たとえば、標準 VLAN ポート ポリシーにはプロパティ タイプ値 NdisSwitchPortPropertyTypeVlan です があります。
PropertyId メンバー。 このメンバーは、カスタム ポート プロパティの独自 GUID 値を指定します。 この GUID 値は、カスタム拡張可能スイッチ プロパティの形式を定義もする独立系ソフトウェア ベンダー (ISV) によって作成されます。
注: 拡張機能は、標準のポート ポリシーでは、このメンバーを無視する必要があります。
拡張機能は設定要求 OID_SWITCH_PORT_PROPERTY_UPDATE の取り扱いを、拡張機能が以前に NDIS_SWITCH_PROPERTY_PARAMETERS 構造体の次のメンバーと一致するポート プロパティを使用してプロビジョニングされている場合、行わなければいけません。
PropertyType メンバー。
PropertyId メンバー。
注: 拡張機能は、標準のポート ポリシーでは、このメンバーを無視する必要があります。
PropertyVersion メンバー。 このメンバーは、拡張機能がプロビジョニングされたポート プロパティのバージョンを指定します。
PropertyInstanceId メンバー。 このメンバーは、拡張機能がプロビジョニングされたポート プロパティのインスタンスを指定します。
フィルターリングや転送の拡張機能は、管理するポート ポリシーの追加や更新を拒否できます。 拡張機能は、STATUS_DATA_NOT_ACCEPTED を使用して OID 要求を完了することによってこれを行います。
注: キャプチャリング拡張機能では、ポート ポリシーの追加や更新を拒否することはできません。 代わりに、OID 要求を拡張可能スイッチ制御パスに転送する必要があります。
転送の拡張機能は、サポートしない標準ポート プロパティや、プロパティがそのポリシー構成と相反している場合において、OID 要求を失敗させる可能性があります。 この場合、拡張機能は OID 要求を完了し、エラーを報告するために適切な NDIS 状態コードを返す必要があります。
拡張機能が標準ポート ポリシーの OID 設定要求を正常に処理する場合は、OID 要求を完了せず、拡張可能スイッチ制御パスに転送する必要があります。
キャプチャリングやフィルターリングの拡張機能がカスタム ポート ポリシーの OID 設定要求を正常に処理する場合は、OID 要求を完了せず、拡張可能スイッチ制御パスに転送する必要があります。
転送拡張機能がカスタム ポート ポリシーの OID 設定要求を正常に処理する場合は、OID 要求を完了し、適切な NDIS_STATUS_Xxx 値を返す必要があります。
拡張機能は、OID 設定要求を完了しない場合、NdisFOidRequest を呼び出して、OID 要求を拡張可能スイッチ ドライバー スタックに転送する必要があります。 この場合、拡張機能は OID の完了状態を監視して、基盤の拡張機能が OID 要求に失敗したかどうかを検出します。