Compartilhar via


Função TcAddFlow (traffic.h)

A função TcAddFlow adiciona um novo fluxo na interface especificada. Observe que a adição bem-sucedida de um fluxo não indica necessariamente uma alteração na maneira como o tráfego é tratado; as alterações de tratamento de tráfego são efetuadas anexando um filtro ao fluxo adicionado, usando a função TcAddFilter .

Os clientes de controle de tráfego que registraram um manipulador AddFlowComplete (um mecanismo para permitir que o controle de tráfego chame a função de retorno de chamada ClAddFlowComplete para alertar os clientes sobre adições de fluxo concluídas) podem esperar um valor retornado de ERROR_SIGNAL_PENDING. Para obter mais informações, consulte Objetos de controle de tráfego.

Sintaxe

ULONG TcAddFlow(
  [in]  HANDLE       IfcHandle,
  [in]  HANDLE       ClFlowCtx,
  [in]  ULONG        Flags,
  [in]  PTC_GEN_FLOW pGenericFlow,
  [out] PHANDLE      pFlowHandle
);

Parâmetros

[in] IfcHandle

Identificador associado à interface na qual o fluxo deve ser adicionado. Esse identificador é obtido por uma chamada anterior para a função TcOpenInterface .

[in] ClFlowCtx

Identificador de contexto de fluxo fornecido pelo cliente. Usado posteriormente pelo controle de tráfego ao fazer referência ao fluxo adicionado.

[in] Flags

Reservado para uso futuro. Deve ser definido como zero.

[in] pGenericFlow

Ponteiro para uma descrição do fluxo que está sendo instalado.

[out] pFlowHandle

Ponteiro para um local no qual o controle de tráfego retornará o identificador de fluxo. Esse identificador de fluxo deve ser usado em chamadas subsequentes para o controle de tráfego para se referir ao fluxo instalado.

Valor retornado

Há muitos motivos pelos quais uma solicitação para adicionar um fluxo pode ser rejeitada. Códigos de erro retornados pelo controle de tráfego de chamadas para TcAddFlow são fornecidos para ajudar a determinar o motivo da rejeição.

Código de retorno Descrição
NO_ERROR
A função executada sem erros.
ERROR_SIGNAL_PENDING
A função está sendo executada de forma assíncrona; o cliente será chamado novamente por meio da função ClAddFlowComplete exposta pelo cliente quando o fluxo tiver sido adicionado ou quando o processo for concluído.
ERROR_INVALID_HANDLE
O identificador de interface é inválido.
ERROR_NOT_ENOUGH_MEMORY
O sistema está sem memória.
ERROR_INVALID_PARAMETER
Um parâmetro é inválido.
ERROR_INVALID_SERVICE_TYPE
Um tipo de serviço INTSERV não especificado ou inválido foi fornecido.
ERROR_INVALID_TOKEN_RATE
Um valor TOKENRATE inválido ou não especificado foi fornecido.
ERROR_INVALID_PEAK_RATE
O valor PEAKBANDWIDTH é inválido.
ERROR_INVALID_SD_MODE
SHAPEDISCARDMODE é inválido.
ERROR_INVALID_QOS_PRIORITY
O valor de prioridade é inválido.
ERROR_INVALID_TRAFFIC_CLASS
O valor da classe de tráfego é inválido.
ERROR_NO_SYSTEM_RESOURCES
Não há recursos suficientes para acomodar o fluxo solicitado.
ERROR_TC_OBJECT_LENGTH_INVALID
Comprimento inválido especificado para os objetos TC.
ERROR_INVALID_DIFFSERV_FLOW
Aplica-se a fluxos Diffserv. Indica que o objeto QOS_DIFFSERV foi passado com um parâmetro inválido.
ERROR_DS_MAPPING_EXISTS
Aplica-se a fluxos Diffserv. Indica que o QOS_DIFFSERV_RULE especificado em TC_GEN_FLOW já se aplica a um fluxo existente na interface.
ERROR_INVALID_SHAPE_RATE
O objeto QOS_SHAPING_RATE foi passado com um membro ShapingRate inválido.
ERROR_INVALID_DS_CLASS
O QOS_DS_CLASS é inválido.
ERROR_NETWORK_UNREACHABLE
O cabo de rede não está conectado ao adaptador.

Comentários

Se a função TcAddFlow retornar ERROR_SIGNAL_PENDING, a função ClAddFlowComplete será chamada em um thread diferente do thread que chamou a função TcAddFlow .

Somente a adição de um filtro afetará o controle de tráfego. No entanto, a adição de um fluxo fará com que os recursos sejam confirmados nos componentes de controle de tráfego. Isso permite que o controle de tráfego se prepare para lidar com o tráfego no fluxo adicionado.

O controle de tráfego pode excluir um fluxo por vários motivos, incluindo a incapacidade de acomodar o fluxo devido a restrições de largura de banda e requisitos de política ajustados. Os clientes são notificados sobre fluxos excluídos por meio da função de retorno de chamada ClNotifyHandler , com o evento TC_NOTIFY_FLOW_CLOSE.

Nota O uso da função TcAddFlow requer privilégio administrativo.
 

Requisitos

   
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

ClAddFlowComplete

ClNotifyHandler

TC_GEN_FLOW

TcAddFilter

TcOpenInterface