Compartilhar via


Função TcAddFilter (traffic.h)

A função TcAddFilter associa um novo filtro a um fluxo existente que permite que pacotes correspondentes ao filtro sejam direcionados para o fluxo associado.

Os filtros incluem um padrão e uma máscara. O padrão especifica valores de parâmetro específicos, enquanto a máscara especifica quais parâmetros e subcampos de parâmetro se aplicam a um determinado filtro. Quando uma combinação de padrão/máscara é aplicada a um conjunto de pacotes, os pacotes correspondentes são direcionados para o fluxo ao qual o filtro correspondente está associado.

O controle de tráfego retorna um identificador para o filtro recém-adicionado, no parâmetro pFilterHandle, pelo qual os clientes podem se referir ao filtro adicionado. Fluxos pendentes, como aqueles que processam uma solicitação TcAddFlow ou TcModifyFlow para a qual uma rotina de retorno de chamada não foi concluída, não podem ter filtros associados a eles; somente os fluxos que foram concluídos e estão estáveis podem aplicar filtros associados.

A relação entre filtros e fluxos é de muitos para um. Vários filtros podem ser aplicados a um único fluxo; no entanto, um filtro só pode ser aplicado a um fluxo. Por exemplo, o fluxo A pode ter filtros X, Y e Z aplicados a ele, mas enquanto o fluxo A estiver ativo, os filtros X, Y e Z não poderão ser aplicados a nenhum outro fluxo.

Sintaxe

ULONG TcAddFilter(
  [in]  HANDLE         FlowHandle,
  [in]  PTC_GEN_FILTER pGenericFilter,
  [out] PHANDLE        pFilterHandle
);

Parâmetros

[in] FlowHandle

Manipule para o fluxo, conforme recebido de uma chamada anterior para a função TcAddFlow .

[in] pGenericFilter

Ponteiro para uma descrição do filtro a ser instalado.

[out] pFilterHandle

Ponteiro para um buffer em que o controle de tráfego retorna o identificador de filtro. Esse identificador de filtro é usado pelo cliente em chamadas subsequentes para se referir ao filtro adicionado.

Retornar valor

Código de retorno Descrição
NO_ERROR
A função executada sem erros.
ERROR_INVALID_HANDLE
O identificador de fluxo é inválido.
ERROR_INVALID_PARAMETER
Um parâmetro é inválido.
ERROR_INVALID_ADDRESS_TYPE
Um tipo de endereço inválido foi fornecido.
ERROR_DUPLICATE_FILTER
Existe um filtro idêntico em um fluxo nessa interface.
Nota No Windows Vista, esse código não será retornado.
 
ERROR_FILTER_CONFLICT
Existe um filtro conflitante em um fluxo nessa interface.
Nota No Windows Vista, esse código não será retornado.
 
ERROR_NOT_ENOUGH_MEMORY
O sistema está sem memória.
ERROR_NOT PRONTO
O fluxo está sendo instalado, modificado ou excluído e não está em um estado que aceita filtros.

Comentários

Os filtros podem ser de tipos diferentes. Normalmente, eles são usados para filtrar pacotes pertencentes a diferentes camadas de rede. Os tipos de filtro instalados em uma interface geralmente correspondem aos tipos de endereço dos endereços de camada de rede associados à interface. O tipo de endereço deve ser especificado na estrutura de filtro.

Os filtros podem ser rejeitados por vários motivos, incluindo possíveis conflitos com o filtro solicitado, bem como filtros já associados ao fluxo. Códigos de erro específicos ao controle de tráfego são fornecidos para ajudar o usuário a diagnosticar o motivo por trás de uma rejeição à função TcAddFilter .

Nota O uso da função TcAddFilter requer privilégio administrativo.
 
No Windows Vista, filtros sobrepostos e idênticos podem ser criados. Nessas situações, o filtro mais específico tem precedência.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho traffic.h
Biblioteca Traffic.lib
DLL Traffic.dll

Confira também

TcAddFlow