Macro NdisMCmMakeCallComplete (ndis.h)
NdisMCmMakeCallComplete retorna a status final da solicitação de um cliente, para a qual o driver MCM retornou anteriormente NDIS_STATUS_PENDING, para fazer uma chamada de saída.
Sintaxe
void NdisMCmMakeCallComplete(
_S_,
_VH_,
_PH_,
_CC_,
_CP_
);
Parâmetros
_S_
Especifica o status final da tentativa de fazer a conexão, seja NDIS_STATUS_SUCCESS ou qualquer NDIS_STATUS_ XXX determinado pelo chamador, exceto NDIS_STATUS_PENDING.
_VH_
Especifica o identificador para a VC criada pelo cliente, que o driver MCM obteve como um parâmetro de entrada para sua função ProtocolCoCreateVc e, mais recentemente, do CallMgrVcContext passado para sua função ProtocolCmMakeCall .
_PH_
Especifica o identificador para a parte inicial no VC multipoint criado pelo cliente, que o driver MCM obteve como um parâmetro de entrada para sua função ProtocolCmMakeCall . Se o NdisVcHandle especificado representasse uma VC ponto a ponto, esse parâmetro era NULL.
_CC_
Especifica o identificador para uma área de contexto residente alocada pelo chamador, na qual o driver MCM manterá informações de estado por parte ou esse parâmetro será NULL se NdisPartyHandle for NULL. Para uma VC de vários pontos, o NDIS passa esse identificador CallManagerPartyContext fornecido pelo mcm-driver em todas as chamadas subsequentes para as funções ProtocolCmXxx que dizem respeito a essa parte. Se Status for algo diferente de NDIS_STATUS_SUCCESS, o NDIS ignorará esse parâmetro.
_CP_
Ponteiro para uma estrutura do tipo CO_CALL_PARAMETERS que especifica os parâmetros de chamada configurados para essa conexão se Status for NDIS_STATUS_SUCCESS.
Retornar valor
Nenhum
Comentários
Um driver MCM deve chamar NdisMCmMakeCallComplete com NDIS_STATUS_SUCCESS somente se estiver pronto para fazer transferências de dados na VC. Ou seja, o driver MCM negociou com a rede para estabelecer os parâmetros de chamada para a VC, configurar uma NIC para esses parâmetros de chamada e chamou NdisMCmActivateVc para notificar o NDIS da ativação de VC.
Um driver MCM deve chamar NdisMCmMakeCallComplete se sua função ProtocolCmMakeCall retornada anteriormente NDIS_STATUS_PENDING para o NdisVcHandle especificado. O cliente, que iniciou a chamada de saída pendente, não pode usar a VC para fazer transferências até que o driver de miniporto chame NdisMCmMakeCallComplete com NDIS_STATUS_SUCCESS.
Mesmo que a tentativa de conexão tenha falhado, nem o NDIS nem o cliente podem liberar os recursos alocados para manter o estado até que a chamada do driver MCM para NdisMCmMakeCallComplete cause uma chamada para o do cliente Função ProtocolClMakeCallComplete . Na verdade, negligenciar chamar NdisMCmMakeCallComplete para uma tentativa fracassada de configurar essa conexão também causa uma perda de memória no driver MCM; impede que o cliente destrua a VC que criou para sua chamada de saída com falha, portanto, a função ProtocolCoDeleteVc do driver MCM não é chamada para liberar os recursos que o driver de miniporto alocou para essa VC.
Se o driver MCM passar um erro, como NDIS_STATUS_FAILURE, para o Status, ele deverá considerar o NdisPartyHandle, se houver, inválido quando NdisMCmMakeCallComplete retornar o controle. O CM pode liberar (ou reinicializar para reutilizar) todos os recursos alocados para manter o estado da parte especificada depois que NdisMCmMakeCallComplete retornar o controle. A função ProtocolCoDeleteVc do driver MCM será chamada posteriormente para liberar todos os recursos alocados pelo driver de miniporto para acompanhar o estado da VC criada pelo cliente sempre que o driver MCM passar um erro status para NdisMCmMakeCallComplete.
No curso da configuração de uma chamada de saída iniciada pelo cliente, o driver MCM pode modificar os parâmetros de chamada fornecidos pelo cliente originalmente passados para sua função ProtocolCmMakeCall . Se isso acontecer, o driver MCM deverá passar suas modificações no buffer em CallParameters quando chamar NdisMCmMakeCallComplete. Se o cliente achar esses parâmetros de chamada modificados inaceitáveis, ele removerá a chamada, o que também causará uma chamada para a função ProtocolCoDeleteVc do driver MCM.
Somente os drivers de miniporto orientados a conexão que fornecem suporte integrado ao gerenciamento de chamadas podem chamar NdisMCmMakeCallComplete. Os gerenciadores de chamadas autônomos, que se registram no NDIS como drivers de protocolo, chamam NdisCmMakeCallComplete .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisMCmMakeCallComplete (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisMCmMakeCallComplete (NDIS 5.1)) no Windows XP. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade da DDI | Irql_MCM_Function(ndis) |