FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0コールバック関数 (fwpsk.h)
フィルター エンジンは、vSwitchRuntimeStateSaveNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0) 吹き出し関数を呼び出して、仮想スイッチの実行時状態の保存イベントについてコールアウト ドライバーに通知します。
手記
FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 は、FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACKの特定のバージョンです。 詳細については、「WFP Version-Independent 名の と Windows の特定のバージョンを対象とする」を参照してください。
構文
FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 FwpsVswitchRuntimeStateSaveCallback0;
NTSTATUS FwpsVswitchRuntimeStateSaveCallback0(
[in, optional] void *notifyContext,
[in] void *completionContext,
[in] FWPS_VSWITCH_EVENT_TYPE eventType,
[in] const NDIS_SWITCH_PARAMETERS *vSwitch,
[in] NDIS_SWITCH_PORT_ID portId,
void **runtimeState,
[out] SIZE_T *runtimeStateLength
)
{...}
パラメーター
[in, optional] notifyContext
引き出しドライバーによって提供されるコンテキストへのポインター。 ドライバーは、FwpsvSwitchEventsSubscribe0 関数の notifyContext パラメーターにこのポインターを渡しました。 このパラメーターは省略可能であり、NULL にすることができます。
[in] completionContext
コールアウト ドライバーによって提供される完了コンテキストへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。
[in] eventType
FWPS_VSWITCH_EVENT_TYPE 列挙値の 1 つとして指定された仮想スイッチ イベントの種類。 詳細については、「解説」を参照してください。
[in] vSwitch
仮想スイッチに関する情報を含む NDIS_SWITCH_PARAMETERS 構造体へのポインター。
手記
NDIS_SWITCH_PARAMETERS 構造体の情報は、仮想スイッチの初期状態を反映します。現在の状態であるとは限りません。 特に、NumSwitchPorts および IsActive メンバーの初期値は、仮想スイッチ PnP イベントがトリガーされていない限り、引き続きゼロになる可能性があります。 現在の状態情報は、このコールバック関数の他のパラメーターにあります。
[in] portId
ソース スイッチ ポート識別子。
runtimeState
実行時状態出力結果バッファーの場所。
[out] runtimeStateLength
実行時状態バッファー内の実行時状態情報の長さ (バイト単位)。
戻り値
吹き出しの FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 関数は、次の NTSTATUS コードのいずれかを返します。
リターン コード | 形容 |
---|---|
STATUS_SUCCESS | 吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。 |
STATUS_PENDING | 操作は保留中であり、後で完了します。 コールアウト ドライバーは、FwpsvSwitchNotifyComplete0 関数を呼び出して、保留中の操作を完了します。 |
その他の状態コードの | エラーが発生しました。 |
備考
コールアウト ドライバーは、FwpsvSwitchEventsSubscribe0 関数を呼び出すことによって、vSwitchRuntimeStateSaveNotifyFn 関数を登録します。
vSwitchRuntimeStateSaveNotifyFn コールバックが登録されている場合、コールアウトは、ソース VM のランタイム状態を取得し、ライブ マイグレーション中またはローカルの保存および復元操作中にターゲット VM のランタイム状態を復元するように通知されます。 保存の場合、vSwitchRuntimeStateSaveNotifyFn の eventType パラメーター FWPS_VSWITCH_EVENT_RUNTIME_STATE_SAVEに設定されます。
仮想スイッチ拡張プロトコル ドライバーは、仮想スイッチ ポートの実行時データを保存する操作中に、OID_SWITCH_NIC_SAVE のオブジェクト識別子 (OID) メソッド要求を発行します。 フィルター ドライバーは、仮想スイッチ ポートの実行時データを保存し、後で復元できるように、このデータを返します。
すべてのコールアウトからの実行時データ BLOB が収集されると、WFP は NDIS_SWITCH_NIC_SAVE_STATE 構造に収集されたデータを入力し、保存状態要求を完了します。
吹き出しは、vSwitchRuntimeStateSaveNotifyFnからSTATUS_PENDINGを返すことができます。 この場合、WFP は FilterOidRequest ハンドラーでSTATUS_PENDINGを返し、後で完了します。 コールアウト ドライバーは、FwpsvSwitchNotifyComplete0 関数を呼び出して、保留中の操作を完了します。
ランタイム状態の復元については、vSwitchRuntimeStateRestoreNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0) 関数 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 以降で使用できます。 |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | fwpsk.h (Fwpsk.h を含む) |
IRQL | <= DISPATCH_LEVEL |