FwpsCloneStreamData0 函数 (fwpsk.h)
FwpsCloneStreamData0 函数分配现有 FWPS_STREAM_DATA0 数据流的克隆。
语法
NTSTATUS FwpsCloneStreamData0(
[in, out] FWPS_STREAM_DATA0 *calloutStreamData,
[in, optional] NDIS_HANDLE netBufferListPoolHandle,
[in, optional] NDIS_HANDLE netBufferPoolHandle,
[in] ULONG allocateCloneFlags,
[out] NET_BUFFER_LIST **netBufferListChain
);
参数
[in, out] calloutStreamData
指向要克隆其 NET_BUFFER_LIST 结构的原始 FWPS_STREAM_DATA0 结构的指针。
[in, optional] netBufferListPoolHandle
从先前调用 NdisAllocateNetBufferListPool 函数获得的 NET_BUFFER_LIST 池句柄。 此参数是可选的,可以 NULL。
[in, optional] netBufferPoolHandle
从上一次调用获取的 NET_BUFFER 池句柄 NdisAllocateNetBufferPool 函数。 此参数是可选的,可以 NULL。
[in] allocateCloneFlags
目前没有为此函数定义的标志。 标注驱动程序应将此参数设置为零。
[out] netBufferListChain
指向一个位置的指针,该位置接收指向描述所有克隆流数据的 NET_BUFFER_LIST 结构链的指针。
返回值
FwpsCloneStreamData0 函数返回以下 NTSTATUS 代码之一。
返回代码 | 描述 |
---|---|
|
已成功分配克隆 FWPS_STREAM_DATA0 结构。 |
|
发生错误。 |
言论
此克隆的流数据稍后可以通过标注驱动程序注入 TCP/IP 网络堆栈。
FwpsCloneStreamData0 函数克隆现有 FWPS_STREAM_DATA0 数据流中包含的整个 NET_BUFFER_LIST 结构链。 该函数剪裁未使用的数据,以便标注驱动程序可以成功将克隆链传递到 FwpsStreamInjectAsync0 函数。
克隆NET_BUFFER_LIST结构链中的流数据成功注入网络堆栈后,将为每个克隆NET_BUFFER_LIST结构调用 completionFn 标注函数,并且标注应 FwpsFreeCloneNetBufferList0 释放克隆NET_BUFFER_LIST结构。
标注应调用 FwpsDiscardClonedStreamData0 函数(如果克隆的流数据将被丢弃而不重新执行)。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | fwpsk.h (包括 Fwpsk.h) |
库 | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |