The FwpsCloneStreamData0 function allocates a clone of an existing FWPS_STREAM_DATA0 data stream.
NTSTATUS FwpsCloneStreamData0( FWPS_STREAM_DATA0 *calloutStreamData, NDIS_HANDLE netBufferListPoolHandle, NDIS_HANDLE netBufferPoolHandle, ULONG allocateCloneFlags, NET_BUFFER_LIST **netBufferListChain );
There are currently no flags defined for this function. Callout drivers should set this parameter to zero.
A pointer to a location that receives a pointer to a chain of NET_BUFFER_LIST structures that describe all of the cloned stream data.
The FwpsCloneStreamData0 function returns one of the following NTSTATUS codes.
||The clone FWPS_STREAM_DATA0 structure was successfully allocated.|
||An error occurred.|
This cloned stream data can be injected by a callout driver into the TCP/IP network stack at a later time.
The FwpsCloneStreamData0 function clones the entire chain of NET_BUFFER_LIST structures contained in the existing FWPS_STREAM_DATA0 data stream. The function trims unused data such that a callout driver can successfully pass the cloned chain to the FwpsStreamInjectAsync0 function.
After stream data in the clone NET_BUFFER_LIST structure chain has been successfully injected into the network stack, the completionFn callout function is called for each clone NET_BUFFER_LIST structure, and a callout should call FwpsFreeCloneNetBufferList0 to free the clone NET_BUFFER_LIST structure.
A callout should call the FwpsDiscardClonedStreamData0 function if the cloned stream data is to be discarded without being reinjected.
|Windows version||Available starting with Windows Vista.|
|Header||fwpsk.h (include Fwpsk.h)|