次の方法で共有


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

フィルター エンジンは、netBufferList パラメーターによって記述されたパケット データが、パケット 挿入関数の 1 つに挿入されるたびに、吹き出しの 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

netBufferList パラメーターで渡されたポインターは、コールアウト ドライバーによって呼び出 パケット挿入関数の 1 つです。

[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 構造体のメンバー 状態は、挿入操作の結果を示します。

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

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

フィルター エンジンは、IRQL <= DISPATCH_LEVEL でコールアウトの completionFn 吹き出し関数を呼び出します。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム ウィンドウズ
ヘッダー fwpsk.h (Fwpsk.h を含む)
IRQL <= DISPATCH_LEVEL

関連項目

コールアウト ドライバーの吹き出し関数の

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsFreeCloneNetBufferList0

FwpsInjectionHandleCreate0

FwpsInjectionHandleDestroy0

FwpsStreamInjectAsync0

NET_BUFFER_LIST

パケット インジェクション関数の