Macro NdisMCmMakeCallComplete (ndis.h)

NdisMCmMakeCallComplete retorna o 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 o VC criado 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 de vários pontos criados pelo cliente, que o driver MCM obteve como um parâmetro de entrada para sua função ProtocolCmMakeCall . Se o NdisVcHandle especificado representasse um VC ponto a ponto, esse parâmetro seria NULL.

_CC_

Especifica o identificador para uma área de contexto residente alocada por chamador, na qual o driver MCM manterá informações de estado por parte ou esse parâmetro será NULL se NdisPartyHandle for NULL. Para um VC de vários pontos, o NDIS passa esse identificador CallManagerPartyContext fornecido pelo mcm-driver em todas as chamadas subsequentes para as funçõesXxx do ProtocolCm 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.

Valor retornado

Nenhum

Comentários

Um driver MCM deve chamar NdisMCmMakeCallComplete com NDIS_STATUS_SUCCESS somente se estiver pronto para fazer transferências de dados no VC. Ou seja, o driver MCM negociou com a rede para estabelecer os parâmetros de chamada para o 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 tiver retornado anteriormente NDIS_STATUS_PENDING para o NdisVcHandle especificado. O cliente, que iniciou a chamada de saída pendente, não pode usar o VC para fazer transferências até que o driver de miniport chame NdisMCmMakeCallComplete com NDIS_STATUS_SUCCESS.

Mesmo se a conexão tentada falhar, 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 clienteFunção ProtocolClMakeCallComplete. Na verdade, deixar de chamar NdisMCmMakeCallComplete para uma tentativa fracassada de configurar essa conexão também causa um vazamento de memória no driver MCM; ele impede que o cliente derrube o VC criado 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 esse 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 para a parte determinada depois que NdisMCmMakeCallComplete retornar o controle. A função ProtocolCoDeleteVc do driver MCM será chamada posteriormente para liberar todos os recursos que o driver de miniporto alocou para acompanhar o estado do VC criado pelo cliente sempre que o driver MCM passar um status de erro 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 drivers de miniporto orientados para conexão que fornecem suporte integrado ao gerenciamento de chamadas podem chamar NdisMCmMakeCallComplete. Os gerentes de chamadas autônomos, que se registram no NDIS como drivers de protocolo, chamam NdisCmMakeCallComplete .

Requisitos

   
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 Desktop
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL
Regras de conformidade DDI Irql_MCM_Function(ndis)

Confira também

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc