Функция 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 клона в сетевой стек вызывается функция выноски completionFn для каждой структуры клона NET_BUFFER_LIST, а выноска должна вызывать FwpsFreeCloneNetBufferList0 , чтобы освободить NET_BUFFER_LIST структуру клона.
Выноска должна вызывать функцию FwpsDiscardClonedStreamData0 , если клонированные данные потока должны быть удалены без повторного изменения.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Целевая платформа | Универсальное |
Верхняя часть | fwpsk.h (включая Fwpsk.h) |
Библиотека | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |