Функция FwpsCloneStreamData0 (fwpsk.h)

Функция FwpsCloneStreamData0 выделяет клон существующего потока данных FWPS_STREAM_DATA0 .

ПримечаниеFwpsCloneStreamData0 — это определенная версия FwpsCloneStreamData. Дополнительные сведения см. в разделах ИМЕНА Version-Independent ВПП и Выбор конкретных версий Windows .
 

Синтаксис

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.

Код возврата Описание
STATUS_SUCCESS
Структура FWPS_STREAM_DATA0 клонирования успешно выделена.
Другие коды состояния
Произошла ошибка.

Комментарии

Эти клонированные данные потока могут быть внедрены драйвером выноски в сетевой стек TCP/IP позже.

Функция FwpsCloneStreamData0 клонирует всю цепочку NET_BUFFER_LIST структур, содержащихся в существующем потоке данных FWPS_STREAM_DATA0 . Функция обрезает неиспользуемые данные таким образом, чтобы драйвер выноски смог успешно передать клонированную цепочку вФункция FwpsStreamInjectAsync0.

После успешного внедрения потоковых данных в цепочке структуры NET_BUFFER_LIST клона в сетевой стек вызывается функция выноски completionFn для каждой структуры клона NET_BUFFER_LIST, а выноска должна вызывать FwpsFreeCloneNetBufferList0 , чтобы освободить NET_BUFFER_LIST структуру клона.

Выноска должна вызывать функцию FwpsDiscardClonedStreamData0 , если клонированные данные потока должны быть удалены без повторного изменения.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Целевая платформа Универсальное
Верхняя часть fwpsk.h (включая Fwpsk.h)
Библиотека Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

См. также раздел

FWPS_STREAM_DATA0

FwpsDiscardClonedStreamData0

FwpsFreeCloneNetBufferList0

FwpsStreamInjectAsync0

NET_BUFFER

NET_BUFFER_LIST