Condividi tramite


Funzione FwpsCloneStreamData0 (fwpsk.h)

La funzione FwpsCloneStreamData0 alloca un clone di un flusso di dati FWPS_STREAM_DATA0 esistente.

 

Sintassi

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
);

Parametri

[in, out] calloutStreamData

Puntatore alla struttura FWPS_STREAM_DATA0 originale che deve avere la struttura NET_BUFFER_LIST clonata.

[in, optional] netBufferListPoolHandle

Handle del pool NET_BUFFER_LIST ottenuto da una chiamata precedente alla funzione NdisAllocateNetBufferListPool . Questo parametro è facoltativo e può essere NULL.

[in, optional] netBufferPoolHandle

Handle del pool di NET_BUFFER ottenuto da una chiamata precedente all'oggetto Funzione NdisAllocateNetBufferPool . Questo parametro è facoltativo e può essere NULL.

[in] allocateCloneFlags

Attualmente non sono stati definiti flag per questa funzione. I driver di callout devono impostare questo parametro su zero.

[out] netBufferListChain

Puntatore a una posizione che riceve un puntatore a una catena di strutture NET_BUFFER_LIST che descrivono tutti i dati del flusso clonato.

Valore restituito

La funzione FwpsCloneStreamData0 restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
La struttura di FWPS_STREAM_DATA0 clone è stata allocata correttamente.
Altri codici di stato
Si è verificato un errore.

Commenti

Questi dati del flusso clonato possono essere inseriti da un driver di callout nello stack di rete TCP/IP in un secondo momento.

La funzione FwpsCloneStreamData0 clona l'intera catena di strutture NET_BUFFER_LIST contenute nel flusso di dati FWPS_STREAM_DATA0 esistente. La funzione taglia i dati inutilizzati in modo che un driver di callout possa passare correttamente la catena clonata alla Funzione FwpsStreamInjectAsync0 .

Dopo che i dati del flusso nella catena di strutture clone NET_BUFFER_LIST sono stati inseriti correttamente nello stack di rete, la funzione callout completionFn viene chiamata per ogni struttura di clonazione NET_BUFFER_LIST e un callout deve chiamare FwpsFreeCloneNetBufferList0 per liberare la struttura di clonazione NET_BUFFER_LIST.

Un callout deve chiamare la funzione FwpsDiscardClonedStreamData0 se i dati del flusso clonato devono essere rimossi senza essere reinseriti.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows Vista.
Piattaforma di destinazione Universale
Intestazione fwpsk.h (include Fwpsk.h)
Libreria Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Vedi anche

FWPS_STREAM_DATA0

FwpsDiscardClonedStreamData0

FwpsFreeCloneNetBufferList0

FwpsStreamInjectAsync0

NET_BUFFER

NET_BUFFER_LIST