FWPS_CALLOUT_CLASSIFY_FN2 funzione di callback (fwpsk.h)
Il motore di filtro chiama la funzione di callout classifyFn2 di un callout ogni volta che sono presenti dati da elaborare dal callout.
Sintassi
FWPS_CALLOUT_CLASSIFY_FN2 FwpsCalloutClassifyFn2;
void FwpsCalloutClassifyFn2(
[in] const FWPS_INCOMING_VALUES0 *inFixedValues,
[in] const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
[in, out, optional] void *layerData,
[in, optional] const void *classifyContext,
[in] const FWPS_FILTER2 *filter,
[in] UINT64 flowContext,
[in, out] FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}
Parametri
[in] inFixedValues
Puntatore a una struttura FWPS_INCOMING_VALUES0 . Questa struttura contiene i valori per ognuno dei campi dati nel livello filtrato.
[in] inMetaValues
Puntatore a un oggetto FWPS_INCOMING_METADATA_VALUES0 struttura. Questa struttura contiene i valori per ognuno dei campi dei metadati nel livello filtrato.
[in, out, optional] layerData
Puntatore a una struttura che descrive i dati non elaborati nel livello filtrato. Questo parametro può essere NULL, a seconda del livello filtrato e delle condizioni in cui viene chiamata la funzione callout classifyFn2 . Per il livello di flusso, questo parametro punta a un FWPS_STREAM_CALLOUT_IO_PACKET0 struttura. Per tutti gli altri livelli, questo parametro punta a una struttura NET_BUFFER_LIST se non è NULL.
[in, optional] classifyContext
Puntatore ai dati di contesto associati al driver di callout dal motore di filtro.
[in] filter
Puntatore a una struttura FWPS_FILTER2 . Questa struttura descrive il filtro che specifica il callout per l'azione del filtro.
[in] flowContext
Variabile tipizzata UINT64 che contiene il contesto associato al flusso di dati. Se al flusso di dati non è associato alcun contesto, questo parametro è zero. Se il callout viene aggiunto al motore di filtro a un livello di filtro che non supporta i flussi di dati, la funzione callout classifyFn2 deve ignorare questo parametro.
[in, out] classifyOut
Puntatore a una struttura FWPS_CLASSIFY_OUT0 che riceve tutti i dati restituiti dalla funzione callout classifyFn2 al chiamante.
Valore restituito
nessuno
Osservazioni
Un driver callout registra le funzioni di callout di un callout con il motore di filtro chiamando la funzione FwpsCalloutRegister2 .
Il motore di filtro chiama la funzione di callout classifyFn2 di un callout con i dati da elaborare ogni volta che tutte le condizioni di test sono vere per un filtro nel motore di filtro che specifica il callout per l'azione del filtro.
La funzione di callout classifyFn2 di un callout di un callout deve cancellare il flag FWPS_RIGHT_ACTION_WRITE nel membro dei diritti della struttura FWPS_CLASSIFY_OUT0 in una delle situazioni seguenti:
- Quando la funzione callout classifyFn2 imposta il membro actionType della struttura FWPS_CLASSIFY_OUT0 su FWP_ACTION_BLOCK .
- Quando la funzione callout classifyFn2 imposta il membro actionType della struttura FWPS_CLASSIFY_OUT0 su FWP_ACTION_PERMIT e il flag FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT viene impostato nel membro Flags della struttura FWPS_FILTER2 .
-
Quando un callout ha indicato che intende modificare l'elenco clone net buffer impostando il parametro intendToModify su TRUE in una chiamata a Funzione FwpsReferenceNetBufferList0 .
Questa funzione è essenzialmente identica alla versione precedente, classifyFn1. Tuttavia, la struttura FWPS_FILTER2 aggiornata punta al parametro di filtro e il parametro layerData è facoltativo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8. |
Piattaforma di destinazione | Windows |
Intestazione | fwpsk.h (include Fwpsk.h) |
IRQL | <= DISPATCH_LEVEL |
Vedi anche
Associazione del contesto a un Flusso di dati
Funzioni callout driver callout
FWPS_INCOMING_METADATA_VALUES0Esempi di modifica dei pacchetti
Registrazione dei callout con il motore di filtro
Uso di un callout per l'ispezione approfondita dei dati di Stream