Compartilhar via


Criando uma VC

Antes de fazer uma chamada de saída, um cliente orientado à conexão inicia a criação de uma VC (conexão virtual). Antes de indicar uma chamada de entrada para um cliente orientado à conexão, um gerenciador de chamadas ou um driver MCM inicia a criação de uma VC . Depois que a VC tiver sido configurada e ativada, os dados do cliente poderão ser transmitidos ou recebidos na VC.

Um gerenciador de chamadas ou um driver MCM também pode iniciar a criação de uma VC na qual as mensagens de sinalização são trocadas com componentes de rede, como um comutador de rede.

Client-Initiated criação de uma VC

Antes de fazer uma chamada com NdisClMakeCall, um cliente orientado à conexão chama NdisCoCreateVc para iniciar a criação de uma VC.

A figura a seguir mostra um cliente de um gerenciador de chamadas iniciando a criação de uma VC.

Diagrama mostrando um cliente de um gerenciador de chamadas iniciando a criação de uma VC.

A figura a seguir mostra um cliente de um driver MCM iniciando a criação de uma VC.

Diagrama mostrando um cliente de um driver MCM iniciando a criação de uma VC.

Quando um cliente orientado à conexão de um gerenciador de chamadas chama NdisCoCreateVc, o NDIS chama, como uma operação síncrona, a função ProtocolCoCreateVc do gerenciador de chamadas e a função MiniportCoCreateVc do driver de miniporte subjacente (consulte a primeira figura neste tópico). O NDIS passa um NdisVcHandle que representa a VC para ProtocolCoCreateVc e MiniportCoCreateVc. Se a chamada para NdisCoCreateVc for bem-sucedida, o NDIS retornará NdisVcHandle para NdisCoCreateVc.

ProtocolCoCreateVc aloca e inicializa todos os recursos dinâmicos e estruturas que o gerenciador de chamadas requer para executar operações subsequentes em uma VC que será ativada. MiniportCoCreateVc aloca e inicializa todos os recursos que o driver de miniporto requer para manter informações de estado sobre a VC. ProtocolCoCreateVc e MiniportCoCreateVc armazenam o NdisVcHandle .

Quando um cliente orientado à conexão de um driver MCM, a chamada para NdisCoCreateVc faz com que o NDIS chame a função ProtocolCoCreateVc do driver MCM (consulte Client-Initiated Criação de uma VC (McM Driver Present)). Nesse caso, ProtocolCoCreateVc executa a alocação e inicialização necessárias de recursos para a VC. Não há nenhuma chamada (interna ou não) para MiniportCoCreateVc, porque um driver MCM não fornece tal função.

Chamar Manager-Initiated criação de uma VC

Antes de indicar uma chamada de entrada para um cliente orientado à conexão com NdisCmDispatchIncomingCall, um gerenciador de chamadas chama NdisCoCreateVc para iniciar a criação de uma VC (consulte a figura a seguir).

Diagrama mostrando um gerenciador de chamadas iniciando a criação de uma VC.

Quando um gerenciador de chamadas chama NdisCoCreateVc, o NDIS chama, como uma operação síncrona, a função ProtocolCoCreateVc do cliente orientado à conexão que registrou o SAP no qual a chamada está sendo recebida, bem como a função MiniportCoCreateVc do miniport subjacente. O NDIS passa um NdisVcHandle que representa a VC para ProtocolCoCreateVc e MiniportCoCreateVc. Se a chamada para NdisCoCreateVc for bem-sucedida, o NDIS retornará NdisVcHandle para NdisCoCreateVc.

MCM Driver-Initiated criação de uma VC

Antes de indicar uma chamada de entrada para um cliente orientado à conexão com NdisMCmDispatchIncomingCall, um driver MCM chama NdisMCmCreateVc para iniciar a criação de uma VC (consulte a figura a seguir).

Diagrama mostrando um driver MCM iniciando a criação de uma VC.

Quando um driver MCM chama NdisMCmCreateVc, o NDIS chama, como uma operação síncrona antes do retorno de NdisMCmCreateVc , a função ProtocolCoCreateVc do cliente orientado à conexão que registrou o SAP no qual a chamada está sendo recebida. O NDIS passa um NdisVcHandle que representa a VC para ProtocolCoCreateVc. Se a chamada para NdisMCmCreateVc for bem-sucedida, o NDIS retornará NdisVcHandle para NdisMCmCreateVc.

ProtocolCoCreateVc aloca e inicializa todos os recursos dinâmicos e estruturas que o cliente requer para executar operações subsequentes na VC. ProtocolCoCreateVc também armazena o NdisVcHandle .

Observe que quando um driver MCM cria uma VC para trocar mensagens de sinalização com um componente de rede, ele não usa chamadas NdisXxx para criar uma VC. Na verdade, um driver MCM não usa chamadas NdisXxx para criar, ativar, desativar ou excluir esses VCs. Em vez disso, um driver MCM executa essas operações internamente. Esses VCs são, portanto, opacos ao NDIS.