Partilhar 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 do FwpsInjectionHandleCreate. Consulte nomes de Version-Independent WFP e versões específicas de destino 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 está 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 de FwpsInjectForwardAsync0.

FWPS_INJECTION_TYPE_NETWORK

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

FWPS_INJECTION_TYPE_STREAM

Os dados de fluxo serão injetados chamando o função de FwpsStreamInjectAsync0.

FWPS_INJECTION_TYPE_TRANSPORT

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

Para criar uma alça de injeção a ser usada 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.

Valor de retorno

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 explicativo deve chamar a função FwpsInjectionHandleCreate0 novamente posteriormente para criar um identificador de injeção.
Outros códigos de status
Ocorreu um erro.

Observações

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 explicativo terminar de usar um identificador de injeção, ele deve 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á sua 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 duas alças de injeção chamando a função FwpsInjectionHandleCreate0 duas vezes: uma chamada com addressFamily definida como AF_INET e uma segunda chamada com addressFamily definida 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 as camadas.

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

Requisitos

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

Consulte também

FwpsInjectionHandleDestroy0

FwpsQueryPacketInjectionState0

Funções de injeção de pacote