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

フィルター エンジンは 、vSwitchFilterEngineReorderNotifyRn (FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0) 吹き出し関数を呼び出して、仮想スイッチ フィルター エンジンの並べ替えに関連付けられているイベントについてコールアウト ドライバーに通知します。

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

構文

FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 FwpsVswitchFilterEngineReorderCallback0;

NTSTATUS FwpsVswitchFilterEngineReorderCallback0(
  [in, optional] void *notifyContext,
  [in]           void *completionContext,
  [in]           BOOLEAN isInRequiredPosition,
  [in]           const NDIS_ENUM_FILTERS *vSwitchExtensionLwfList
)
{...}

パラメーター

[in, optional] notifyContext

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

[in] completionContext

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

[in] isInRequiredPosition

フィルターがフィルター スタック内の必要な位置にある場合は TRUE に設定され、そうでない場合は FALSE に設定されるブール値。

[in] vSwitchExtensionLwfList

仮想スイッチ拡張機能 NDIS フィルター ドライバーの一覧を指定するNDIS_ENUM_FILTERS構造体。

戻り値

吹き出しの

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

リターン コード 説明
STATUS_SUCCESS
吹き出しドライバーは、フィルター エンジンからの通知を受け入れます。
その他の状態コード
エラーが発生しました。

解説

コールアウト ドライバーは、 を登録します。

を呼び出して vSwitchFilterEngineReorderNotifyRn 関数を呼び出す
FwpsvSwitchEventsSubscribe0 関数。

既定では、WFP 仮想スイッチ拡張機能は、仮想スイッチのイングレス時に最初のフィルター拡張機能として配置されます。 (したがって、仮想スイッチエグレスでの最後の拡張機能でもあります)。 WFP 拡張機能は、他の拡張機能がイングレスでそれらを変更する前にパケットをインターセプトできるため、通常はこれが最適な位置です。 また、WFP 拡張機能は、すべてのパケット変更がエグレスで行われた後にパケットをインターセプトできます。

ただし、管理者は同じクラスの仮想スイッチ拡張機能を並べ替えることができるため、WFP 拡張機能は既定の位置から並べ替えることができます。 並べ替えが行われると、WFP クライアントのフィルターがバイパスされ、調整が必要になる場合があります。

vSwitchFilterEngineReorderNotifyRn コールバックが登録されている場合、仮想スイッチの並べ替えが発生すると、コールアウト ドライバーに通知されます。 コールアウト ドライバーは、vSwitchExtensionLwfList パラメーターで現在の仮想スイッチ拡張機能の順序付きリストを持つNDIS_ENUM_FILTERS構造体を受け取ります。

仮想スイッチ拡張機能の順序が変更されると、WFP 拡張機能は一時停止され ( FilterPause を参照)、再起動されます ( 「FilterRestart」を参照)。 WFP フィルター FilterRestart 呼び出しから、WFP フィルター ドライバーは NdisEnumerateFilterModules 関数を呼び出して、仮想スイッチ拡張機能フィルターの順序付きリストを取得します。 WFP 拡張機能が既定の位置にない場合、フィルター ドライバーはコールアウト ドライバーに通知します。

引き出し線ドライバーは 、vSwitchFilterEngineReorderNotifyRn からSTATUS_PENDINGを返すことができません。

要件

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

こちらもご覧ください

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

FilterPause

FilterRestart

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_ENUM_FILTERS

NdisEnumerateFilterModules

NdisFRestartComplete