次の方法で共有


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

フィルター エンジンは、吹き出しによって処理されるデータがある場合は常に、吹き出しの classifyFn2 吹き出し関数を呼び出します。

classifyFn2 は、Windows 8 以降で使用される classifyFn の特定のバージョンです。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。 Windows 7 の場合、 classifyFn1 を使用できます。 Windows Vista の場合、 classifyFn0 を使用できます。

 

構文

FWPS_CALLOUT_CLASSIFY_FN2 FwpsCalloutClassifyFn2;

void FwpsCalloutClassifyFn2(
  [in]                const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]                const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out, optional] void *layerData,
  [in, optional]      const void *classifyContext,
  [in]                const FWPS_FILTER2 *filter,
  [in]                UINT64 flowContext,
  [in, out]           FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

パラメーター

[in] inFixedValues

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

[in] inMetaValues

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

[in, out, optional] layerData

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

[in, optional] classifyContext

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

[in] filter

FWPS_FILTER2構造体へのポインター。 この構造体では、フィルターのアクションの吹き出しを指定するフィルターについて説明します。

[in] flowContext

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

[in, out] classifyOut

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

戻り値

なし

解説

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

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

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

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

    この関数は、基本的に以前のバージョンの classifyFn1 と同じです。 ただし、更新 されたFWPS_FILTER2 構造体は filter パラメーターによって指され、 layerData パラメーターは省略可能です。

要件

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

こちらもご覧ください

コンテキストとデータ フローの関連付け

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

データのログ

FWPS_CLASSIFY_OUT0

FWPS_FILTER2

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister2

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

パケット変更例

フィルター エンジンへの吹き出しの登録

ストリーム データの詳細検査へのコールアウトの使用

詳細検査へのコールアウトの使用

classifyFn

classifyFn0

classifyFn1