FwpsAllocateNetBufferAndNetBufferList0 関数 (fwpsk.h)
FwpsAllocateNetBufferAndNetBufferList0 関数は、新しい NET_BUFFER_LIST 構造体を割り当てます。
構文
NTSTATUS FwpsAllocateNetBufferAndNetBufferList0(
[in] NDIS_HANDLE poolHandle,
[in] USHORT contextSize,
[in] USHORT contextBackFill,
[in, optional] MDL *mdlChain,
[in] ULONG dataOffset,
[in] SIZE_T dataLength,
[out] NET_BUFFER_LIST **netBufferList
);
パラメーター
[in] poolHandle
NdisAllocateNetBufferListPool 関数の以前の呼び出しから取得された NET_BUFFER_LIST プール ハンドル。
[in] contextSize
引き出しドライバー用に予約する NET_BUFFER_LIST_CONTEXT 構造体で使用されるデータ領域のサイズ (バイト単位)。 このパラメーターの値は、MEMORY_ALLOCATION_ALIGNMENTによって定義された値の倍数である必要があります。
[in] contextBackFill
引き出しドライバーに必要な未使用のデータ領域 (バックフィル領域) のサイズ (バイト単位)。 FwpsAllocateNetBufferAndNetBufferList0 関数は、ContextSize パラメーターで指定された値にこの値を追加し、追加の領域を割り当てます。 このパラメーターの値は、MEMORY_ALLOCATION_ALIGNMENTによって定義された値の倍数である必要があります。
[in, optional] mdlChain
事前に割り当てられたNET_BUFFER構造体を初期化するために使用される MDL チェーンへのポインター。 このパラメーターは省略可能であり、NULL できます。
[in] dataOffset
バッファーの先頭から MDL チェーン内の使用されるデータ空間の先頭までの初期オフセット (バイト単位)。 このオフセットの前のデータ領域は、未使用のデータ領域です。 したがって、この値は、MDL チェーン内の使用可能なバックフィル領域の初期量も表します。
[in] dataLength
MDL チェーンで使用されるデータ領域の長さ (バイト単位)。
[out] netBufferList
新しい NET_BUFFER_LIST 構造体へのポインターを受け取る変数へのポインター。
戻り値
FwpsAllocateNetBufferAndNetBufferList0 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 形容 |
---|---|
|
新しい NET_BUFFER_LIST 構造体が正常に割り当てられました。 |
|
エラーが発生しました。 |
備考
コールアウト ドライバーは、FwpsAllocateNetBufferAndNetBufferList0 関数を呼び出して、新しい NET_BUFFER_LIST 構造体を割り当てます。
この関数は、〘〘NdisAllocateNetBufferAndNetBufferList 関数 しますが、WFP パケット インジェクション関数で使用するために特化されています。
新しい NET_BUFFER_LIST 構造体によって記述されたデータがネットワーク スタックに正常に挿入された後、コールアウト ドライバーは、新しい NET_BUFFER_LIST 構造体を解放します。FwpsFreeNetBufferList0 関数を します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | fwpsk.h (Fwpsk.h を含む) |
ライブラリ | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |