Condividi tramite


struttura FWPS_CALLOUT3 (fwpsk.h)

La struttura FWPS_CALLOUT3 definisce i dati necessari per un driver callout per registrare un callout con il motore di filtro.

Sintassi

typedef struct FWPS_CALLOUT3_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN3           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN3             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT3;

Membri

calloutKey

Un GUID definito dal driver di callout che identifica in modo univoco il callout.

flags

Flag che specificano parametri specifici del callout. I flag possibili sono:

Valore Significato
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Un driver callout può specificare questo flag durante la registrazione di un callout che verrà aggiunto a un livello che supporta i flussi di dati. Se questo flag viene specificato, il motore di filtro chiama il driver del callout classifyFn3 funzione callout solo se al flusso di dati è associato un contesto. Un driver callout associa un contesto a un flusso di dati chiamando la funzione FwpsFlowAssociateContext0.
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Un driver callout specifica questo flag per indicare che il driver del callout classifyFn3 funzione callout non è interessato dall'offload dell'elaborazione dei dati di rete alle schede di interfaccia di rete con supporto per l'offload. Se questo flag non viene specificato, l'offload dell'elaborazione dati di rete viene disabilitato per tutto il traffico elaborato da tutti i filtri che specificano il callout per l'azione del filtro.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Un driver callout specifica questo flag per indicare che può ricevere notifiche su oggetti e filtri aggiunti all'interno di una transazione. Il motore di filtro invia la notifica dopo il commit della transazione.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Un driver callout specifica questo flag per indicare che può eseguire l'ispezione dinamica dei flussi di dati a livello di flusso. Vedere flusso di ispezione.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Un driver callout specifica questo flag da registrare per essere chiamato quando un'operazione socket esistente viene riclassificata.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Riservato per l'uso del sistema. I driver callout devono ignorare questo flag.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Un driver callout specifica questo flag per indicare che il callout supporta l'unione del segmento di ricezione TCP (RSC) con pacchetti di grandi dimensioni fino a 64K. Se questo flag non viene specificato e viene registrato un callout, RSC viene disabilitato per tutto il traffico elaborato da tutti i filtri che specificano il callout per l'azione del filtro.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Un driver callout specifica questo flag durante la registrazione di un callout che verrà aggiunto al livello 2, per indicare che il relativo classifyFn3 funzione callout può classificare più strutture di NET_BUFFER_LIST concatenati. Per altre informazioni, vedere Uso del filtro di livello 2.

attenzione:
Se un driver callout imposta questo flag, non può utilizzare le funzioni seguenti per modificare NET_BUFFER_LISTs.

FwpsReferenceNetBufferList0
FwpsDereferenceNetBufferList0
FwpsAllocateCloneNetBufferList0
FwpsFreeCloneNetBufferList0

Con questo flag impostato, FwpsAllocateCloneNetBufferList0 restituirà sempre un errore di INVALID_PARAMETER. Ciò potrebbe causare un errore imprevisto di un driver callout di terze parti di gestire il numero di riferimenti di NET_BUFFER_LISTs, causando l'arresto delle operazioni di invio e ricezione.
FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Un driver callout specifica questo flag per indicare che il callout supporta l'offload di segmentazione UDP (USO) con pacchetti di dimensioni maggiori rispetto all'MTU del supporto di rete. Se questo flag non viene specificato e viene registrato un callout, l'uso viene disabilitato per tutto il traffico elaborato da tutti i filtri che specificano il callout per l'azione del filtro. Nota: La versione meno recente in cui è supportato questo flag è Windows Insider Preview, versione 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Un driver callout specifica questo flag per indicare che il callout supporta l'offload di ricezione UDP (URO) con pacchetti di grandi dimensioni fino a 64K. Se questo flag non viene specificato e viene registrato un callout, l'URO viene disabilitato per tutto il traffico elaborato da tutti i filtri che specificano il callout per l'azione del filtro. Nota: Se questo flag è specificato, i callout non devono clonare e reiniettare pacchetti URO in ingresso.

classifyFn

Puntatore al driver del callout classificareFn3 funzione callout. Il motore di filtro chiama questa funzione ogni volta che sono presenti dati di rete da elaborare dal callout.

notifyFn

Puntatore alla funzione del driver del callout notifyFn3. Il motore di filtro chiama questa funzione per notificare al driver callout gli eventi associati al callout.

flowDeleteFn

Puntatore alla funzione callout del driver flowDeleteFn. Il motore di filtro chiama questa funzione ogni volta che viene terminato un flusso di dati elaborato dal callout.

Se un driver callout non associa un contesto ai flussi di dati elaborati dal callout, questo membro deve essere impostato su NULL.

Osservazioni

Un driver di callout passa un puntatore a una struttura di FWPS_CALLOUT3 inizializzata alla funzione fwpsCalloutRegister3 quando registra un callout con il motore di filtro.

Un callout può impostare il flag FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW solo per le connessioni su cui il driver è interessato a eseguire ispezioni del flusso. Questo callout verrà ignorato in tutte le altre connessioni. Le prestazioni saranno migliorate e il driver non dovrà gestire i dati sullo stato non necessari.

FWPS_CALLOUT3 è la versione specifica di FWPS_CALLOUT. Per altre informazioni, vedere nomi Version-Independent WFP e selezione di versioni specifiche di Windows.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 8.
intestazione fwpsk.h

Vedere anche