次の方法で共有


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

コールアウト フィルターが一致したときに分類中に呼び出されるコールバック関数のバージョン 3。 違いは、このコールバックが FWPS_FILTER3 構造体を返す点です。

構文

FWPS_CALLOUT_CLASSIFY_FN3 FwpsCalloutClassifyFn3;

void FwpsCalloutClassifyFn3(
  const FWPS_INCOMING_VALUES0 *inFixedValues,
  const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  void *layerData,
  const void *classifyContext,
  const FWPS_FILTER3 *filter,
  UINT64 flowContext,
  FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

パラメーター

inFixedValues

FWPS_INCOMING_VALUES0 構造体へのポインター。 この構造体には、フィルター処理されるレイヤーの各データ フィールドの値が含まれます。

inMetaValues

FWPS_INCOMING_METADATA_VALUES0 構造体へのポインター。 この構造体には、フィルター処理されるレイヤーの各メタデータ フィールドの値が含まれます。

layerData

フィルター処理されるレイヤーの生データを記述する構造体へのポインター。 このパラメーターは、フィルター処理されるレイヤーと、classifyFn3 吹き出し関数が呼び出される条件に応じて、NULL可能性があります。 ストリーム レイヤーの場合、このパラメーターは FWPS_STREAM_CALLOUT_IO_PACKET0 構造体を指します。 他のすべてのレイヤーで、このパラメーターが NULLでない場合、このパラメーターは NET_BUFFER_LIST 構造体を指します。

classifyContext

フィルター エンジンによって引き出しドライバーに関連付けられているコンテキスト データへのポインター。

filter

FWPS_FILTER3 構造体へのポインター。 この構造体は、フィルターのアクションの吹き出しを指定するフィルターを記述します。

flowContext

データ フローに関連付けられたコンテキストを含む UINT64 型の変数。 データ フローに関連付けられているコンテキストがない場合、このパラメーターは 0 です。 データ フローをサポートしていないフィルター レイヤーで吹き出しがフィルター エンジンに追加された場合、classifyFn3 吹き出し関数はこのパラメーターを無視する必要があります。

classifyOut

classifyFn3 吹き出し関数が呼び出し元に返すデータを受け取る FWPS_CLASSIFY_OUT0 構造体へのポインター。

戻り値

何一つ

備考

コールアウト ドライバーは、FwpsCalloutRegister2 関数を呼び出すことによって、吹き出しの吹き出し関数をフィルター エンジンに登録します。

フィルター エンジンは、フィルターのアクションの吹き出しを指定するフィルター エンジン内のフィルターに対してすべてのテスト条件が true の場合に、データを処理する吹き出しの classifyFn3 吹き出し関数を呼び出します。

吹き出しの classifyFn1 吹き出し関数は、次のいずれかの状況で、FWPS_CLASSIFY_OUT0 構造体のメンバー 権限の FWPS_RIGHT_ACTION_WRITE フラグをクリアする必要があります。

  • classifyFn1 吹き出し関数は、FWPS_CLASSIFY_OUT0 構造体の actionType メンバーを FWP_ACTION_BLOCKに設定します。
  • classifyFn1 吹き出し関数によって、FWPS_CLASSIFY_OUT0 構造体の actionType メンバーが FWP_ACTION_PERMIT に設定され、FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT フラグが FWPS_FILTER3 構造体の flags メンバーに設定されます。
  • FwpsReferenceNetBufferList0 関数の呼び出しで、intendToModify パラメーターを TRUE 設定して、複製ネット バッファー リストを変更することを示した場合。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ヘッダー fwpsk.h
IRQL <= DISPATCH_LEVEL

関連項目