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 |