次の方法で共有


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

フィルター エンジンは 、vSwitchRuntimeStateRestoreNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0) 吹き出し関数を呼び出して、仮想スイッチの実行時状態復元イベントについてコールアウト ドライバーに通知します。

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

 

構文

FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0 FwpsVswitchRuntimeStateRestoreCallback0;

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

[in] portId

ソース スイッチ ポート識別子。

runtimeState

実行時状態出力結果バッファーの場所。

[in] runtimeStateLength

実行時状態バッファー内の実行時状態情報の長さ (バイト単位)。

戻り値

吹き出しの

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

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

解説

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

ランタイム状態の保存については、 vSwitchRuntimeStateSaveNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0) 関数を参照してください。

保存された各データ セグメントは、復元操作中にターゲット システムまたはローカル システム上の仮想スイッチ拡張スタックを介して送信される OID_SWITCH_NIC_RESTORE OID で復元されます。 WFP は、登録済みのプロバイダー GUID と一致した後、 vSwitchRuntimeStateRestoreNotifyFn を介して正しい吹き出しにデータをディスパッチします。 この場合、vSwitchRuntimeStateRestoreNotifyFneventType パラメーターは FWPS_VSWITCH_EVENT_RUNTIME_STATE_RESTORE に設定されます。

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

要件

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

こちらもご覧ください

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

FWPS_VSWITCH_EVENT_TYPE

FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0

FilterOidRequest

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_SWITCH_PARAMETERS

OID_SWITCH_NIC_RESTORE