Функция 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
Указатель на исходную структуру FWPS_STREAM_DATA0, которая заключается в том, чтобы клонировать ее NET_BUFFER_LIST структуру.
[in, optional] netBufferListPoolHandle
Дескриптор пула NET_BUFFER_LIST, полученный из предыдущего вызова функции NdisAllocateNetBufferListPool. Этот параметр является необязательным и может быть null.
[in, optional] netBufferPoolHandle
Дескриптор пула NET_BUFFER, полученный из предыдущего вызова функция NdisAllocateNetBufferPool. Этот параметр является необязательным и может быть null.
[in] allocateCloneFlags
В настоящее время для этой функции нет флагов. Драйверы выноски должны задать этот параметр равным нулю.
[out] netBufferListChain
Указатель на расположение, которое получает указатель на цепочку NET_BUFFER_LIST структур, описывающих все клонированные данные потока.
Возвращаемое значение
Функция FwpsCloneStreamData0 возвращает один из следующих кодов NTSTATUS.
Возвращаемый код | Описание |
---|---|
|
Клонирование FWPS_STREAM_DATA0 структуры успешно выделено. |
|
Произошла ошибка. |
Замечания
Клонированные данные потока можно внедрить драйвером выноски в стек сети TCP/IP позже.
Функция FwpsCloneStreamData0 клонирует всю цепочку структур NET_BUFFER_LIST, содержащихся в существующем потоке данных FWPS_STREAM_DATA0. Функция обрезает неиспользуемые данные таким образом, что драйвер выноски может успешно передать клонированную цепочку в клонированную цепочку функцию FwpsStreamInjectAsync0.
После успешного внедрения потоковых данных в цепочку структуры клона NET_BUFFER_LIST в сетевой стек завершениеFn вызывается для каждой NET_BUFFER_LIST структуры клона, а выноска должна вызываться FwpsFreeCloneNetBufferList0, чтобы освободить структуру NET_BUFFER_LIST клона.
Выноска должна вызывать функцию FwpsDiscardClonedStreamData0, если клонированные данные потока должны быть удалены без повторного ввода.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows Vista. |
целевая платформа | Всеобщий |
заголовка | fwpsk.h (include Fwpsk.h) |
библиотеки | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |