次の方法で共有


FwpsReferenceNetBufferList0 関数 (fwpsk.h)

FwpsReferenceNetBufferList0 関数は、NET_BUFFER_LIST構造体の参照カウントをインクリメントします。

FwpsReferenceNetBufferList0 は、 FwpsReferenceNetBufferList の特定のバージョンです。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。
 

構文

void FwpsReferenceNetBufferList0(
  [in, out] NET_BUFFER_LIST *netBufferList,
  [in]      BOOLEAN         intendToModify
);

パラメーター

[in, out] netBufferList

参照カウントがインクリメントされる NET_BUFFER_LIST 構造体へのポインター。

[in] intendToModify

classifyFn 関数が返された後、netBufferList パラメーターによって親が指している複製されたネットワーク バッファー リストを変更するかどうかを示す値。 TRUE の場合、classifyFn が返された後に、吹き出しは複製されたネット バッファー リストを変更します (帯域外の変更)。 それ以外の場合は、FALSE に設定 します

戻り値

なし

解説

コールアウト ドライバーは FwpsReferenceNetBufferList0 関数を呼び出して、ネットワーク バッファー リストが classifyFn 関数の外部で有効なままになるように、NET_BUFFER_LIST構造体の参照カウントをインクリメントします。

たとえば、コールアウト ドライバーは、パケットの再構築を実行すると、個々のパケットを構成するパケット フラグメントを記述する受信したNET_BUFFER_LIST構造体ごとに参照カウントをインクリメントします。 これにより、再構成されたパケットを記述する新しいNET_BUFFER_LIST構造体は、パケット フラグメントを記述するNET_BUFFER_LIST構造体が指すメモリ記述子リスト (MDL) を安全に参照できます。 コールアウト ドライバーは、新しいNET_BUFFER_LIST構造体をネットワーク スタックに挿入した後、パケット 挿入完了ルーチンからパケット フラグメントを記述する各NET_BUFFER_LIST構造体の参照カウントをデクリメントします。

コールアウト ドライバーは、引き出し線ドライバーが構造体の参照を完了した後、NET_BUFFER_LIST構造体の FwpsDereferenceNetBufferList0 関数を呼び出す必要があります。

参照パケットの管理に関するガイドライン

コールアウト ドライバーは、参照されるパケットを無期限に保持することはできません。 参照されたパケットは、アイドル状態のコンピューターでの電源管理操作に干渉する可能性があります。

WFP での参照パケットの用途は、ユーザー モード アプリケーションまたはその他の比較的高速な操作から明確にすることです。 コールアウト ドライバーは、ユーザー入力、Web サービスのクリアランス、または任意の時間がかかる可能性のあるその他の操作を待機している間、参照パケットを保持することはできません。

コールアウト ドライバーは、長い可能性のある操作を待機する必要がある場合は、 FwpsAllocateNetBufferAndNetBufferList0 を使用してパケットのディープ コピーを作成し、元のパケットをブロックして吸収する必要があります。

コールアウト ドライバーは、常にできるだけ早く保持されたパケットを返す必要があります。

要件

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

こちらもご覧ください

FwpsDereferenceNetBufferList0

NET_BUFFER_LIST

classifyFn