FwpsReferenceNetBufferList0 函数 (fwpsk.h)
FwpsReferenceNetBufferList0 函数递增 NET_BUFFER_LIST 结构的引用计数。
语法
void FwpsReferenceNetBufferList0(
[in, out] NET_BUFFER_LIST *netBufferList,
[in] BOOLEAN intendToModify
);
参数
[in, out] netBufferList
指向引用计数递增的 NET_BUFFER_LIST 结构的指针。
[in] intendToModify
一个值,该值指示标注是否打算修改克隆的网络缓冲区列表,其父级由 netBufferList 参数指向,分类Fn 函数返回后。 如果 TRUE,标注打算在 分类Fn 返回后修改克隆的净缓冲区列表(带外修改)。 否则,设置为 FALSE。
返回值
没有
言论
标注驱动程序调用 FwpsReferenceNetBufferList0 函数,以递增 NET_BUFFER_LIST 结构的引用计数,使网络缓冲区列表在 分类Fn 函数之外保持有效。
例如,当标注驱动程序重新组合数据包时,它会递增每个接收的NET_BUFFER_LIST结构的引用计数,这些结构描述构成单个数据包的数据包片段。 这允许描述重新组合数据包的新NET_BUFFER_LIST结构安全地引用描述符列表(MDL),这些列表由描述数据包片段的NET_BUFFER_LIST结构所指向。 标注驱动程序将新的NET_BUFFER_LIST结构注入网络堆栈后,它会递减每个描述数据包注入完成例程中的数据包片段的NET_BUFFER_LIST结构的引用计数。
标注驱动程序必须在标注驱动程序完成引用结构后为NET_BUFFER_LIST结构调用 FwpsDereferenceNetBufferList0 函数。
管理引用数据包的准则
标注驱动程序不得无限期保留引用的数据包。 引用的数据包可能会干扰空闲计算机上的电源管理作。粮食计划署中引用数据包的预期用途是从用户模式应用程序或其他相对快速的作中获取说明。 标注驱动程序不得保存引用的数据包,例如,等待用户输入、Web 服务清除或任何其他可能需要任意时间的作。
如果标注驱动程序必须等待可能较长的作,则应使用 FwpsAllocateNetBufferAndNetBufferList0 并阻止和吸收原始数据包来深入复制数据包。
标注驱动程序应始终尽快返回保留的数据包。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | fwpsk.h (包括 Fwpsk.h) |
库 | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |