FwpsAllocateNetBufferAndNetBufferList0 函数 (fwpsk.h)

FwpsAllocateNetBufferAndNetBufferList0 函数分配新的 NET_BUFFER_LIST 结构。

注意FwpsAllocateNetBufferAndNetBufferList0FwpsAllocateNetBufferAndNetBufferList的特定版本。 有关详细信息,请参阅 WFP Version-Independent 名称和面向特定版本的 Windows
 

语法

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 代码之一。

返回代码 描述
STATUS_SUCCESS
已成功分配新的 NET_BUFFER_LIST 结构。
其他状态代码
发生错误。

言论

标注驱动程序调用 FwpsAllocateNetBufferAndNetBufferList0 函数来分配新的 NET_BUFFER_LIST 结构。

此函数是围绕 NdisAllocateNetBufferAndNetBufferList 函数,但它专用于粮食计划署 数据包注入函数

NET_BUFFER_LIST 结构描述的数据成功注入网络堆栈后,标注驱动程序通过调用 释放新的 NET_BUFFER_LIST 结构 FwpsFreeNetBufferList0 函数。

要求

要求 价值
最低支持的客户端 从 Windows Vista 开始可用。
目标平台 普遍
标头 fwpsk.h (包括 Fwpsk.h)
Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

另请参阅

FwpsFreeNetBufferList0

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

数据包注入函数