Função NdisCoCreateVc (ndis.h)

NdisCoCreateVc configura um ponto de extremidade de conexão do qual um cliente pode fazer chamadas de saída ou em que um gerenciador de chamadas autônomo pode expedir chamadas de entrada.

Sintaxe

NDIS_STATUS NdisCoCreateVc(
  [in]           NDIS_HANDLE  NdisBindingHandle,
  [in, optional] NDIS_HANDLE  NdisAfHandle,
  [in]           NDIS_HANDLE  ProtocolVcContext,
  [in, out]      PNDIS_HANDLE NdisVcHandle
);

Parâmetros

[in] NdisBindingHandle

Especifica o identificador retornado por NdisOpenAdapterEx que identifica a NIC de destino ou o adaptador virtual do driver inferior ao qual o chamador está associado.

[in, optional] NdisAfHandle

Especifica o identificador retornado por NdisClOpenAddressFamilyEx se o chamador for um cliente. Um gerenciador de chamadas define esse parâmetro como NULL se ele estiver criando uma VC para si mesmo, como uma VC para um comutador de rede. Quando ele cria uma VC para notificações de chamada de entrada, um gerenciador de chamadas passa o identificador af que salvou em seu estado por AF designado pelo CallMgrAfContext que foi passado como um parâmetro de entrada para seu Função ProtocolCmRegisterSap .

[in] ProtocolVcContext

Especifica o identificador para uma área de contexto residente fornecida pelo chamador na qual o chamador mantém o estado para essa VC. O NDIS passa esse identificador de volta para o criador de VC em todas as chamadas subsequentes relacionadas a esse ponto de extremidade se a chamada para NdisCoCreateVc for bem-sucedida.

[in, out] NdisVcHandle

Ponteiro para uma variável fornecida pelo chamador que deve ser inicializada como NULL quando NdisCoCreateVc é chamado. Ao retornar de uma chamada bem-sucedida, isso aponta para uma variável que o NDIS definiu como seu identificador para a VC recém-criada. O chamador deve salvar esse identificador para chamadas subsequentes para funções Ndis Xxx orientadas por conexão.

Retornar valor

NdisCoCreateVc pode retornar um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
O NDIS criou a VC com êxito.
NDIS_STATUS_RESOURCES
O NDIS não pôde alocar memória suficiente para configurar a VC.
NDIS_STATUS_FAILURE
O NdisAfHandle especificado é inválido.
NDIS_STATUS_ XXX
O driver de miniporto subjacente falhou na criação da VC por um motivo determinado pelo driver de miniporto, que o NDIS propagado para o chamador.

Comentários

Um cliente ou um gerenciador de chamadas autônomo cria uma VC com NdisCoCreateVc, dependendo se a VC representa uma chamada de saída ou de entrada, respectivamente.

No processo de criação de VC, o NDIS fornece um NdisVcHandle para o cliente, o gerenciador de chamadas e o driver de miniporto ao qual ambos os drivers de protocolo estão associados. Esse identificador identifica o circuito virtual para o cliente, o gerenciador de chamadas e o driver de miniporto para o qual as solicitações subsequentes relativas à VC fornecida são direcionadas. Cada driver deve tratar esse identificador de VC como uma variável opaca, passando-o sem modificações e não interpretado em chamadas subsequentes para determinadas funções de biblioteca NDIS orientadas a conexão.

Normalmente, os chamadores do NdisCoCreateVc armazenam o NdisVcHandle retornado na área de estado alocada pelo chamador em ProtocolVcContext . O NDIS passa esse identificador como um parâmetro de entrada para as funções ProtocolCoCreateVc e MiniportCoCreateVc dos outros dois drivers envolvidos em cada criação de uma VC.

Para fazer uma chamada de saída, um cliente deve chamar NdisCoCreateVc primeiro. Como uma operação síncrona, o NDIS chama a função MiniportCoCreateVc do driver de miniporte subjacente e a função ProtocolCoCreateVc do gerenciador de chamadas antes que NdisCoCreateVc retorne o controle. Se sua chamada para NdisCoCreateVc for bem-sucedida, o cliente poderá continuar fazendo uma chamada de saída, passando o NdisVcHandle retornado para NdisClMakeCall.

Quando éA função ProtocolCoReceiveNetBufferLists processa a oferta de uma chamada de entrada direcionada a um de seus SAPs registrados, um gerenciador de chamadas deve chamar NdisCoCreateVc primeiro. Como uma operação síncrona, o NDIS chama a função MiniportCoCreateVc do driver de miniporto subjacente e a função ProtocolCoCreateVc do cliente antes que NdisCoCreateVc retorne o controle. Se sua chamada para NdisCoCreateVc for bem-sucedida, o gerenciador de chamadas poderá continuar notificando o cliente apropriado, passando o valor retornado em NdisVcHandle para NdisCmDispatchIncomingCall.

Os gerentes de chamadas autônomos, que se registram no NDIS como drivers de protocolo, podem chamar NdisCoCreateVc. Drivers de miniporto orientados para conexão que fornecem suporte integrado ao gerenciamento de chamadas chamam NdisMCmCreateVc, em vez disso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisCoCreateVc (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisCoCreateVc (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_Connection_Function(ndis)

Confira também

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists