次の方法で共有


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構造体の参照カウントをデクリメントします。

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

参照されるパケットを管理するための ガイドライン

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

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

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

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

必要条件

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

関連項目

FwpsDereferenceNetBufferList0

NET_BUFFER_LIST

classifyFn