Compartilhar via


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)

Confira também

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc