Condividi tramite


Funzione FwpsChangectionHandleCreate0 (fwpsk.h)

La funzione FwpsChangectionHandleCreate0 crea un handle che può essere usato dalle funzioni di inserimento pacchetti per inserire pacchetti o trasmettere dati nello stack di rete TCP/IP e dalla funzione FwpsQueryPacketChangectionState0 per eseguire query sullo stato di inserimento dei pacchetti.

NotaFwpsChangectionHandleCreate0 è una versione specifica di FwpsChangectionHandleCreate. Per altre informazioni , vedere Nomi Version-Independent WFP e Versioni specifiche di Windows .
 

Sintassi

NTSTATUS FwpsInjectionHandleCreate0(
  [in, optional] ADDRESS_FAMILY addressFamily,
  [in]           UINT32         flags,
  [out]          HANDLE         *injectionHandle
);

Parametri

[in, optional] addressFamily

Famiglia di indirizzi per cui viene creato l'handle di inserimento. Questa può essere una delle famiglie di indirizzi seguenti:

AF_UNSPEC

La famiglia di indirizzi non è specificata.

AF_INET

Famiglia di indirizzi IPv4.

AF_INET6

Famiglia di indirizzi IPv6.

Per l'inserimento di trasporto, flusso e inoltro, questo parametro è facoltativo e può essere impostato su AF_UNSPEC, che indica una famiglia di indirizzi non specificata. Questo valore è definito in Ws2def.h.

[in] flags

Valore flag impostato da un driver di callout per indicare il tipo di dati da inserire. Questo flag può avere uno o più dei valori seguenti:

FWPS_INJECTION_TYPE_FORWARD

I dati dei pacchetti verranno inseriti chiamando il Funzione FwpsInjectForwardAsync0 .

FWPS_INJECTION_TYPE_NETWORK

I dati di rete verranno inseriti chiamando uno dei due Funzione FwpsInjectNetworkReceiveAsync0 o Funzione FwpsInjectNetworkSendAsync0 .

FWPS_INJECTION_TYPE_STREAM

Stream dati verranno inseriti chiamando il Funzione FwpsStreamInjectAsync0 .

FWPS_INJECTION_TYPE_TRANSPORT

I dati di trasporto verranno inseriti chiamando uno dei due Funzione FwpsInjectTransportReceiveAsync0 o Funzione FwpsInjectTransportSendAsync0 .

Per creare un handle di inserimento da usare da più funzioni di inserimento, combinare i bit di tipo di inserimento con operazioni OR bit per bit. Se il valore del flag è impostato su zero, l'handle di inserimento risultante può essere usato per i inserimenti di trasporto, flusso e inoltro.

[out] injectionHandle

Puntatore a una variabile che riceve l'handle.

Valore restituito

La funzione FwpsChangectionHandleCreate0 restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
L'handle di inserimento è stato creato correttamente.
STATUS_FWP_TCPIP_NOT_READY
Lo stack di rete TCP/IP non è pronto. Un driver di callout deve chiamare di nuovo la funzione FwpsChangectionHandleCreate0 in un secondo momento per creare un handle di inserimento.
Altri codici di stato
Si è verificato un errore.

Commenti

Un driver di callout chiama la funzione FwpsChangectionHandleCreate0 per creare un handle che può essere usato per inserire i dati di pacchetto o flusso nello stack di rete TCP/IP e per eseguire query sullo stato di inserimento dei pacchetti. Un driver di callout passa l'handle creato alle funzioni di inserimento dei pacchetti e FwpsQueryPacketChangectionState0.

Al termine dell'uso di un handle di inserimento, un driver di callout deve chiamare la funzione FwpsChangectionHandleDestroy0 per eliminare l'handle. Se gli inserimenti in sospeso non sono ancora stati completati, questa funzione attenderà il completamento prima della restituzione.

Quando vengono apportati inserimenti al livello di rete e sia le famiglie di indirizzi IPv4 che IPv6 vengono filtrate, il driver callout deve creare due handle di inserimento chiamando la funzione FwpsChangectionHandleCreate0 due volte: una chiamata con addressFamily impostata su AF_INET e una seconda chiamata con addressFamily impostata su AF_INET6.

Per i livelli MAC ( *MAC_FRAME_NATIVE, *MAC_FRAME_ETHERNET, *VSWITCH_ETHERNET), è possibile usare lo stesso handle di inserimento acquisito con il flag di FWPS_INJECTION_TYPE_L2. Il tipo di inserimento è legato più vicino alle funzioni di inserimento rispetto ai livelli.

Per un esempio di codice, vedere HelperFunctions_InjectionData.cpp WFPSampler.

Requisiti

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

Vedi anche

FwpsMakectionHandleDestroy0

FwpsQueryPacketChangectionState0

Funzioni di inserimento pacchetti