次の方法で共有


FWPS_VSWITCH_POLICY_EVENT_CALLBACK0 コールバック関数 (fwpsk.h)

フィルター エンジンは 、vSwitchPolicyEventNotifyFn (FWPS_VSWITCH_POLICY_EVENT_CALLBACK0) コールアウト関数を呼び出して、仮想スイッチ ポリシー イベントについてコールアウト ドライバーに通知します。

FWPS_VSWITCH_POLICY_EVENT_CALLBACK0は特定のバージョンのFWPS_VSWITCH_POLICY_EVENT_CALLBACKであることに注意してください。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。
 

構文

FWPS_VSWITCH_POLICY_EVENT_CALLBACK0 FwpsVswitchPolicyEventCallback0;

NTSTATUS FwpsVswitchPolicyEventCallback0(
  [in, optional] void *notifyContext,
  [in]           void *completionContext,
  [in]           FWPS_VSWITCH_EVENT_TYPE eventType,
  [in]           const NDIS_SWITCH_PARAMETERS *vSwitch,
  [in, optional] const NDIS_SWITCH_PORT_PROPERTY_PARAMETERS *vSwitchPortProperty,
  [in, optional] const NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS *vSwitchPortPropertyDelete
)
{...}

パラメーター

[in, optional] notifyContext

コールアウト ドライバーによって提供されるコンテキストへのポインター。 ドライバーは、FwpsvSwitchEventsSubscribe0 関数の notifyContext パラメーターにこのポインターを渡しました。 このパラメーターは省略可能であり、NULL にすることができます。

[in] completionContext

コールアウト ドライバーによって提供される完了コンテキストへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。

[in] eventType

FWPS_VSWITCH_EVENT_TYPE列挙値の 1 つとして指定された仮想スイッチ イベントの種類。 詳細については、「解説」を参照してください。

[in] vSwitch

仮想スイッチに関する情報を含む NDIS_SWITCH_PARAMETERS 構造体へのポインター。

メモNDIS_SWITCH_PARAMETERS構造体内の情報は、仮想スイッチの初期状態を反映し、必ずしも現在の状態であるとは限りません。 特に、仮想スイッチ PnP イベントがトリガーされていない限り、 NumSwitchPorts メンバーと IsActive メンバーの初期値は 0 のままになることがあります。 現在の状態情報は、このコールバック関数の他のパラメーターにあります。
 

[in, optional] vSwitchPortProperty

NDIS_SWITCH_PORT_PROPERTY_PARAMETERS構造体へのポインター。 仮想スイッチのポート プロパティ。

[in, optional] vSwitchPortPropertyDelete

NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS構造体へのポインター。 仮想スイッチのポート プロパティ。

戻り値

吹き出しの

FWPS_VSWITCH_POLICY_EVENT_CALLBACK0関数は 、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_SUCCESS
吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。
STATUS_PENDING
操作は保留中であり、後で完了します。 コールアウト ドライバーは FwpsvSwitchNotifyComplete0 関数を呼び出して、保留中の操作を完了します。
その他の状態コード
エラーが発生しました。

解説

コールアウト ドライバーは、FwpsvSwitchEventsSubscribe0 関数を呼び出すことによって vSwitchPolicyEventNotifyFn 関数を登録します。

vSwitchPolicyEventNotifyFn コールバックが登録されている場合、移行先ホストのコールアウトは、ライブ マイグレーション中に仮想スイッチ ポート用に構成されたポリシーに関する通知を受け取り、新しいホストで移行 VM を実行できるようになります。

ライブ マイグレーションがないと、VM の保存操作に対して vSwitchPolicyEventNotifyFn も呼び出されます。

VMMS WMI インターフェイスを介して構成されたベンダー フィルター ポリシーに対する変更は、OID 要求を使用して WFP 仮想スイッチ拡張機能に渡されます。 これらの OID は、PropertyType メンバーが NdisSwitchPortPropertyTypeCustom 型に設定されたNDIS_SWITCH_PORT_PROPERTY_PARAMETERS構造体を保持します。

WFP フィルター ドライバーは、 OID_SWITCH_PORT_PROPERTY_ADD OID 要求の情報を vSwitchPolicyEventNotifyFn に渡し、FWPS_VSWITCH_EVENT_POLICY_ADDの種類を eventType パラメーターに設定して、仮想スイッチ ポートのポリシー プロパティの追加についてコールアウト ドライバーに通知します。

WFP フィルター ドライバーは、 OID_SWITCH_PORT_PROPERTY_UPDATE OID 要求 の情報を vSwitchPolicyEventNotifyFn に渡し、FWPS_VSWITCH_EVENT_POLICY_UPDATEの種類を eventType パラメーターに設定して、仮想スイッチ ポート ポリシーのプロパティの更新について吹き出しフィルター ドライバーに通知します。

これらの OID には、ポリシーが属する WFP プロバイダーを一意に識別するプロパティ識別子 GUID も含まれています。 プロパティ識別子 GUID は、ベンダーが VMMS を使用してそのポリシーを構成するときに提供され、GUID は、ベンダーが WFP にプロバイダーを登録するために使用するのと同じ GUID である必要があります。

WFP は、プロパティ識別子 GUID と 、FwpsvSwitchEventsSubscribe0 関数から指定されたプロバイダー GUID との照合を試みます。 一致するものがある場合、WFP は対応する vSwitchPolicyEventNotifyFn を 呼び出し、 NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 構造体を吹き出しに渡します。

WFP フィルター ドライバーは、 OID_SWITCH_PORT_PROPERTY_DELETE OID 要求の情報を vSwitchPolicyEventNotifyFn に渡し、FWPS_VSWITCH_EVENT_POLICY_DELETEの種類を eventType パラメーターに設定して、仮想スイッチ ポートのポリシー プロパティの削除についてコールアウト フィルター ドライバーに通知します。 削除プロパティは、 NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 構造体で指定されます。

吹き出しが vSwitchPolicyEventNotifyFn からSTATUS_PENDINGを返す場合、WFP は FilterOidRequest ハンドラーにSTATUS_PENDINGを返します。 コールアウト ドライバーは FwpsvSwitchNotifyComplete0 関数を呼び出して、保留中の操作を完了します。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム Windows
ヘッダー fwpsk.h (Fwpsk.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

引き出し線ドライバーの吹き出し関数

FWPS_VSWITCH_EVENT_TYPE

FilterOidRequest

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_SWITCH_PARAMETERS

NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS

NDIS_SWITCH_PORT_PROPERTY_PARAMETERS

OID_SWITCH_PORT_PROPERTY_ADD

OID_SWITCH_PORT_PROPERTY_DELETE

OID_SWITCH_PORT_PROPERTY_UPDATE