次の方法で共有


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

フィルター エンジンは、パケット インジェクション関数の 1 つで netBufferList パラメーターによって記述されたパケット データがネットワーク スタックに挿入されるたびに、吹き出しの completionFn 吹き出し関数を呼び出します。

構文

FWPS_INJECT_COMPLETE0 FwpsInjectComplete0;

void FwpsInjectComplete0(
  [in]      void *context,
  [in, out] NET_BUFFER_LIST *netBufferList,
  [in]      BOOLEAN dispatchLevel
)
{...}

パラメーター

[in] context

吹き出しドライバーによって呼び出されるパケット インジェクション関数の 1 つの completionContext パラメーターへのポインター。

[in, out] netBufferList

吹き出しドライバーによって呼び出されるパケット インジェクション関数の 1 つの netBufferList パラメーターで渡されるポインター。

[in] dispatchLevel

completionFn 吹き出し関数が呼び出されている IRQL を示す値。 このパラメーターが TRUE の場合、 completionFn 吹き出し関数は IRQL = DISPATCH_LEVELで呼び出されます。 このパラメーターが FALSE の場合、 IRQL< DISPATCH_LEVELで completionFn 吹き出し関数が呼び出されます。

戻り値

なし

解説

FWPS_INJECT_COMPLETE0型は、 completionFn 関数へのポインターとして次のように定義されます。

typedef void (NTAPI *FWPS_INJECT_COMPLETE0) completionFn

NetBufferList が指すNET_BUFFER_LIST構造体の Status メンバーは、挿入操作の結果を示します。

複製または作成された NET_BUFFER_LIST 構造体チェーン内のパケット データが、 パケット インジェクション関数の 1 つによってネットワーク スタックに正常に挿入された後、 completionFn が呼び出されます。

NET_BUFFER_LIST構造体のチェーンを挿入するために FwpsStreamInjectAsync0 関数が呼び出された場合、fwpsStreamInjectAsync0 で指定された同じ completionContext パラメーターを使用するたびに、チェーン内のNET_BUFFER_LISTごとに completionFn が 1 回呼び出されます。 この場合、コールアウト ドライバーの completionFn 実装では 、FwpsFreeCloneNetBufferList0 を呼び出して、現在示されている NET_BUFFER_LISTを解放する必要があります。

フィルター エンジンは、IRQL <= DISPATCH_LEVEL で吹き出しの入力候補Fn 吹き出し関数を呼び出します。

要件

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

こちらもご覧ください

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

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsFreeCloneNetBufferList0

FwpsInjectionHandleCreate0

FwpsInjectionHandleDestroy0

FwpsStreamInjectAsync0

NET_BUFFER_LIST

パケット挿入関数