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