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