FWPS_VSWITCH_POLICY_EVENT_CALLBACK0 コールバック関数 (fwpsk.h)
フィルター エンジンは 、vSwitchPolicyEventNotifyFn (FWPS_VSWITCH_POLICY_EVENT_CALLBACK0) コールアウト関数を呼び出して、仮想スイッチ ポリシー イベントについてコールアウト ドライバーに通知します。
構文
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 構造体へのポインター。
[in, optional] vSwitchPortProperty
NDIS_SWITCH_PORT_PROPERTY_PARAMETERS構造体へのポインター。 仮想スイッチのポート プロパティ。
[in, optional] vSwitchPortPropertyDelete
NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS構造体へのポインター。 仮想スイッチのポート プロパティ。
戻り値
吹き出しの
FWPS_VSWITCH_POLICY_EVENT_CALLBACK0関数は 、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。 |
|
操作は保留中であり、後で完了します。 コールアウト ドライバーは 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 |
こちらもご覧ください
NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS
NDIS_SWITCH_PORT_PROPERTY_PARAMETERS