Função NdisCmActivateVc (ndis.h)
NdisCmActivateVc passa parâmetros de chamada fornecidos por CM, incluindo parâmetros de mídia, para um vc específico até o driver de miniporto subjacente.
Sintaxe
NDIS_STATUS NdisCmActivateVc(
[in] NDIS_HANDLE NdisVcHandle,
[in, out] PCO_CALL_PARAMETERS CallParameters
);
Parâmetros
[in] NdisVcHandle
Especifica o identificador que identifica a VC na qual definir parâmetros de chamada. O gerenciador de chamadas obteve esse identificador de NdisCoCreateVc para uma chamada de entrada ou como um parâmetro de entrada para sua função ProtocolCoCreateVc para uma chamada de saída iniciada pelo cliente.
[in, out] CallParameters
Ponteiro para um buffer residente alocado por CM, formatado como uma estrutura do tipo CO_CALL_PARAMETERS, contendo todos os parâmetros específicos de mídia que o driver de miniporto subjacente usa para ativação de VC.
Valor de retorno
Quando NdisCmActivateVc retorna qualquer coisa diferente de NDIS_STATUS_PENDING, o gerenciador de chamadas deve fazer uma chamada interna para sua função ProtocolCmActivateVcComplete. Caso contrário, o NDIS chamará a função ProtocolCmActivateVcComplete do CM quando essa operação for concluída.
Observações
NdisCmActivateVc notifica o driver de miniporto subjacente para configurar parâmetros de chamada e mídia em um VC recém-criado ou para alterar os de uma VC estabelecida. O NDIS encaminha os parâmetros de chamada especificados e o identificador VC para a função miniportuário MiniportCoActivateVc subjacente, que configura todos os recursos necessários para acompanhar o estado do VC e torna a si mesma e uma NIC prontas para transferências de dados no VC.
Um CM autônomo sempre chama NdisCmActivateVc depois de estabelecer uma conexão em um VC, mas antes que todos os dados sejam enviados ou recebidos nessa VC. Durante a conexão, um CM pode chamar NdisCmActivateVc muitas vezes com o mesmo NdisVcHandle como condições na alteração de rede e/ou sempre que o cliente chama NdisClModifyCallQoS. Em cada chamada para NdisCmActivateVc, a função MiniportCoActivateVc do driver de miniporto subjacente deve fazer um dos seguintes procedimentos:
- Atualize o estado que o driver de miniporto mantém sobre parâmetros de chamada para os novos valores fornecidos pelo gerenciador de chamadas se o driver de miniporto puder continuar a fazer transferências no VC de acordo com os parâmetros de chamada recém-modificados.
- Falhará na chamada se o driver de miniporto não puder continuar a fazer transferências sob as restrições dos parâmetros de chamada especificados.
Para uma chamada de saída iniciada pelo cliente, um CM autônomo geralmente chama NdisCmActivateVc imediatamente após a troca de pacotes confirmando um acordo negociado com o destino remoto da chamada ou configuração de chamada bem-sucedida no comutador, antes de notificar o NDIS (e o cliente) da conclusão da chamada de saída com NdisCmMakeCallComplete. Para uma chamada de entrada, um gerenciador de chamadas geralmente chama NdisCmActivateVc depois de chamar NdisCoCreateVc com êxito e antes de chamar NdisCmDispatchIncomingCall.
No processo de configuração de uma chamada de saída e enquanto qualquer VC permanecer ativada, o cliente pode solicitar alterações nos parâmetros de chamada para essa VC, por exemplo, chamando NdisClModifyCallQos. Depois de verificar a validade dos parâmetros de chamada fornecidos para qualquer solicitação, o gerenciador de chamadas autônomo deve chamar NdisCmActivateVc para passar os parâmetros de chamada modificados para o driver de miniporto subjacente.
Somente os gerenciadores de chamadas autônomos, que se registram no NDIS como drivers de protocolo, podem chamar NdisCmActivateVc. Drivers de miniporto orientados para conexão que fornecem chamada de suporte integrado ao gerenciamento de chamadas NdisMCmActivateVc.