Compartilhar via


Função NdisCmMakeCallComplete (ndis.h)

NdisCmMakeCallComplete retorna a status final da solicitação de um cliente, para a qual o gerenciador de chamadas retornou anteriormente NDIS_STATUS_PENDING, para fazer uma chamada de saída.

Sintaxe

void NdisCmMakeCallComplete(
  [in]           NDIS_STATUS         Status,
  [in]           NDIS_HANDLE         NdisVcHandle,
  [in, optional] NDIS_HANDLE         NdisPartyHandle,
  [in, optional] NDIS_HANDLE         CallMgrPartyContext,
  [in]           PCO_CALL_PARAMETERS CallParameters
);

Parâmetros

[in] Status

Especifica o status final da tentativa de fazer a conexão, seja NDIS_STATUS_SUCCESS ou qualquer NDIS_STATUS_ XXX determinado por CM, exceto NDIS_STATUS_PENDING.

[in] NdisVcHandle

Especifica o identificador para a VC criada pelo cliente, que o gerenciador de chamadas obteve originalmente como um parâmetro de entrada para sua função ProtocolCoCreateVc . Mais recentemente, o CM obteve esse identificador de seu estado por VC designado pelo CallMgrVcContext passado para sua função ProtocolCmMakeCall .

[in, optional] NdisPartyHandle

Especifica o identificador para a parte inicial no VC de vários pontos criados pelo cliente, que o gerenciador de chamadas 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.

[in, optional] CallMgrPartyContext

Especifica o identificador fornecido por CM para uma área de contexto residente alocada pelo chamador, na qual o CM manterá informações de estado por parte ou NULL se NdisPartyHandle for NULL. Para um VC de vários pontos, o NDIS passa esse identificador CallManagerPartyContext fornecido por CM em todas as chamadas subsequentes para as funções ProtocolCmXxx que dizem respeito a essa parte. Caso contrário, o NDIS ignorará esse parâmetro.

[in] CallParameters

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 gerenciador de chamadas autônomo deve chamar NdisMCmMakeCallComplete com NDIS_STATUS_SUCCESS somente se o driver de miniporto subjacente estiver pronto para fazer transferências de dados na VC. Ou seja, o gerenciador de chamadas negociou com a rede para estabelecer parâmetros de chamada para a VC e chamou NdisCmActivateVc com êxito .

Um gerenciador de chamadas autônomo deve chamar NdisCmMakeCallComplete 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 CM chame NdisCmMakeCallComplete com NDIS_STATUS_SUCCESS.

Mesmo que a tentativa de conexão falhou, nem o NDIS nem o cliente podem liberar os recursos alocados para manter o estado até que a chamada do CM para NdisCmMakeCallComplete cause uma chamada para o cliente Função ProtocolClMakeCallComplete . Na verdade, deixar de chamar NdisCmMakeCallComplete para uma tentativa com falha de configurar essa conexão também causa um vazamento de memória no gerenciador de chamadas; ele impede que o cliente desinstale a VC que criou para sua chamada de saída com falha, portanto, o CM não é chamado para liberar os recursos alocados para essa VC.

Se o CM passar um erro, como NDIS_STATUS_FAILURE, para o Status, ele deverá considerar o NdisPartyHandle, se houver, inválido assim que chamar NdisCmMakeCallComplete. O CM pode liberar (ou reinicializar para reutilizar) todos os recursos alocados para manter o estado da parte especificada quando NdisCmMakeCallComplete retornar o controle. A função ProtocolCoDeleteVc do CM será chamada posteriormente para liberar todos os recursos alocados pelo CM para acompanhar o estado da VC criada pelo cliente sempre que o CM passar um erro status para NdisCmMakeCallComplete.

No curso da configuração de uma chamada de saída iniciada pelo cliente, o CM pode modificar os parâmetros de chamada fornecidos pelo cliente originalmente passados para sua função ProtocolCmMakeCall . Se isso acontecer, o CM deverá passar suas modificações no buffer em CallParameters quando chamar NdisCmMakeCallComplete. 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 CM.

Somente os gerentes de chamadas autônomos, que se registram no NDIS como drivers de protocolo, podem chamar NdisCmMakeCallComplete. Miniportar drivers que fornecem chamada de suporte ao gerenciamento de chamadas integradaEm vez disso , NdisMCmMakeCallComplete.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisCmMakeCallComplete (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisCmMakeCallComplete (NDIS 5.1)) no Windows XP.
Plataforma de Destino Área de Trabalho
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Irql_CallManager_Function(ndis)

Confira também

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisMCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc