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 |
---|---|
|
A função executada sem erros. |
|
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. |
|
O identificador de interface é inválido. |
|
O sistema está sem memória. |
|
Um parâmetro é inválido. |
|
Um tipo de serviço INTSERV não especificado ou inválido foi fornecido. |
|
Um valor TOKENRATE inválido ou não especificado foi fornecido. |
|
O valor PEAKBANDWIDTH é inválido. |
|
SHAPEDISCARDMODE é inválido. |
|
O valor de prioridade é inválido. |
|
O valor da classe de tráfego é inválido. |
|
Não há recursos suficientes para acomodar o fluxo solicitado. |
|
Comprimento inválido especificado para os objetos TC. |
|
Aplica-se a fluxos Diffserv. Indica que o objeto QOS_DIFFSERV foi passado com um parâmetro inválido. |
|
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. |
|
O objeto QOS_SHAPING_RATE foi passado com um membro ShapingRate inválido. |
|
O QOS_DS_CLASS é inválido. |
|
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.
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 |