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 |
---|---|
|
A função executada sem erros. |
|
O identificador de fluxo é inválido. |
|
Um parâmetro é inválido. |
|
Um tipo de endereço inválido foi fornecido. |
|
Existe um filtro idêntico em um fluxo nessa interface.
Nota No Windows Vista, esse código não será retornado.
|
|
Existe um filtro conflitante em um fluxo nessa interface.
Nota No Windows Vista, esse código não será retornado.
|
|
O sistema está sem memória. |
|
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 .
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 |