Compartilhar via


Função FwpsInjectionHandleCreate0 (fwpsk.h)

A função FwpsInjectionHandleCreate0 cria um identificador que pode ser usado por funções de injeção de pacote para injetar dados de pacote ou fluxo na pilha de rede TCP/IP e pela função FwpsQueryPacketInjectionState0 para consultar o estado de injeção de pacote.

ObservaçãoFwpsInjectionHandleCreate0 é uma versão específica de FwpsInjectionHandleCreate. Consulte Nomes de Version-Independent WFP e Direcionamento de versões específicas do Windows para obter mais informações.
 

Sintaxe

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

Parâmetros

[in, optional] addressFamily

A família de endereços para a qual o identificador de injeção está sendo criado. Essa pode ser uma das seguintes famílias de endereços:

AF_UNSPEC

A família de endereços não é especificada.

AF_INET

A família de endereços IPv4.

AF_INET6

A família de endereços IPv6.

Para injeções de transporte, fluxo e encaminhamento, esse parâmetro é opcional e pode ser definido como AF_UNSPEC, o que indica uma família de endereços não especificada. Esse valor é definido em Ws2def.h.

[in] flags

Um valor de sinalizador definido por um driver de texto explicativo para indicar o tipo de dados a serem injetados. Esse sinalizador pode ter um ou mais dos seguintes valores:

FWPS_INJECTION_TYPE_FORWARD

Os dados do pacote serão injetados chamando o Função FwpsInjectForwardAsync0 .

FWPS_INJECTION_TYPE_NETWORK

Os dados de rede serão injetados chamando o Função FwpsInjectNetworkReceiveAsync0 ou a Função FwpsInjectNetworkSendAsync0 .

FWPS_INJECTION_TYPE_STREAM

Stream dados serão injetados chamando o Função FwpsStreamInjectAsync0 .

FWPS_INJECTION_TYPE_TRANSPORT

Os dados de transporte serão injetados chamando o Função FwpsInjectTransportReceiveAsync0 ou a Função FwpsInjectTransportSendAsync0 .

Para criar um identificador de injeção a ser usado por várias funções de injeção, combine os bits de tipo de injeção com operações OR bit a bit. Se o valor do sinalizador for definido como zero, o identificador de injeção resultante poderá ser usado para injeções de transporte, fluxo e encaminhamento.

[out] injectionHandle

Um ponteiro para uma variável que recebe o identificador.

Retornar valor

A função FwpsInjectionHandleCreate0 retorna um dos seguintes códigos NTSTATUS.

Código de retorno Descrição
STATUS_SUCCESS
O identificador de injeção foi criado com êxito.
STATUS_FWP_TCPIP_NOT_READY
A pilha de rede TCP/IP não está pronta. Um driver de texto explicativo deve chamar a função FwpsInjectionHandleCreate0 novamente mais tarde para criar um identificador de injeção.
Outros códigos de status
Ocorreu um erro.

Comentários

Um driver de texto explicativo chama a função FwpsInjectionHandleCreate0 para criar um identificador que pode ser usado para injetar pacotes ou transmitir dados na pilha de rede TCP/IP e para consultar o estado de injeção de pacote. Um driver de texto explicativo passa o identificador criado para as funções de injeção de pacote e FwpsQueryPacketInjectionState0.

Depois que um driver de texto explicativo terminar de usar um identificador de injeção, ele deverá chamar a função FwpsInjectionHandleDestroy0 para destruir o identificador. Se as injeções pendentes ainda não tiverem sido concluídas, essa função aguardará a conclusão antes de retornar.

Quando as injeções estão sendo feitas na camada de rede e as famílias de endereços IPv4 e IPv6 estão sendo filtradas, o driver de texto explicativo deve criar dois identificadores de injeção chamando a função FwpsInjectionHandleCreate0 duas vezes: uma chamada com addressFamily definido como AF_INET e uma segunda chamada com addressFamily definido como AF_INET6.

Para as camadas MAC ( *MAC_FRAME_NATIVE, *MAC_FRAME_ETHERNET, *VSWITCH_ETHERNET), você pode usar o mesmo identificador de injeção adquirido com o sinalizador FWPS_INJECTION_TYPE_L2. O tipo injeção está vinculado mais perto das funções de injeção do que das camadas.

Para obter um exemplo de código, consulte WFPSampler HelperFunctions_InjectionData.cpp.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho fwpsk.h (inclua Fwpsk.h)
Biblioteca Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Confira também

FwpsInjectionHandleDestroy0

FwpsQueryPacketInjectionState0

Funções de injeção de pacote