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.
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 |
---|---|
|
O identificador de injeção foi criado com êxito. |
|
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. |
|
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 |