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
NET_BUFFER_LIST池句柄,该句柄是从上一次调用 NdisAllocateNetBufferListPool 函数获取的。
[in] contextSize
要为标注驱动程序保留 的NET_BUFFER_LIST_CONTEXT 结构中已用数据空间的大小(以字节为单位)。 此参数的值必须是 MEMORY_ALLOCATION_ALIGNMENT定义的值的倍数。
[in] contextBackFill
标注驱动程序所需的未使用数据空间 (回填空间) 的大小(以字节为单位)。 FwpsAllocateNetBufferAndNetBufferList0 函数将此值添加到 ContextSize 参数中指定的值,并分配额外的空间。 此参数的值必须是 MEMORY_ALLOCATION_ALIGNMENT定义的值的倍数。
[in, optional] mdlChain
指向 MDL 链的指针,该链用于初始化预分配NET_BUFFER结构。 此参数是可选的,可以为 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) |
Library | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |