Compartilhar via


Função NdisMCmCreateVc (ndis.h)

NdisMCmCreateVc configura um ponto de extremidade de conexão no qual um driver MCM pode expedir uma oferta de chamada de entrada para um cliente.

Sintaxe

NDIS_STATUS NdisMCmCreateVc(
  [in]  NDIS_HANDLE  MiniportAdapterHandle,
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  MiniportVcContext,
  [out] PNDIS_HANDLE NdisVcHandle
);

Parâmetros

[in] MiniportAdapterHandle

Especifica a entrada original do identificador fornecido pelo NDIS para MiniportInitializeEx.

[in] NdisAfHandle

Especifica o identificador que identifica o cliente que é o destino de uma chamada de entrada. O driver MCM obteve esse identificador como um parâmetro de entrada para sua função ProtocolCmOpenAf.

[in] MiniportVcContext

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

[out] NdisVcHandle

Ponteiro para uma variável fornecida pelo chamador que deve ser inicializada para NULL antes que NdisMCmCreateVc seja chamado. Ao retornar de uma chamada bem-sucedida, essa variável foi definida como um identificador fornecido pelo NDIS para a VC recém-criada. O chamador deve salvar esse identificador para chamadas subsequentes para funções de NdisXxx relacionadas a essa VC.

Valor de retorno

NdisMCmCreateVc 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 de determinado é inválido.
NDIS_STATUS_ XXX
O cliente falhou na criação do VC por algum motivo e o NDIS propaga o status de erro retornado por sua função ProtocolCoCreateVc para o driver MCM.

Observações

Um driver MCM cria um VC com NdisMCmCreateVc para representar uma oferta de entrada de uma conexão de um nó remoto direcionado a um SAP que já foi registrado com o driver MCM.

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

Normalmente, os chamadores de NdisMCmCreateVc armazenam o NdisVcHandle retornado na área de estado alocada pelo chamador em MiniportVcContext . O NDIS passa um NdisVcHandle como um parâmetro de entrada para a função ProtocolCoCreateVc do cliente apropriado sempre que um driver MCM cria uma VC.

Quando um driver MCM processa a oferta de uma chamada de entrada direcionada a um de seus SAPs registrados, ele deve chamar NdisMCmCreateVc primeiro. Como uma operação síncrona, o NDIS chama a função ProtocolCoCreateVc do cliente antes que NdisMCmCreateVc retorne o controle. Se sua chamada para NdisMCmCreateVc for bem-sucedida, o driver MCM poderá continuar notificando o cliente apropriado, passando o valor retornado em NdisVcHandle para NdisMCmDispatchIncomingCall.

O gravador de driver determina se um driver MCM tem uma função MiniportCoCreateVc que o driver chama no contexto de configuração de conexões para chamadas de saída e de entrada.

Somente os drivers de miniporto orientados à conexão que fornecem suporte integrado ao gerenciamento de chamadas podem chamar NdisMCmCreateVc. Os clientes e gerentes de chamadas autônomos, que se registram no NDIS como drivers de protocolo, chamam NdisCoCreateVc.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisMCmCreateVc (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisMCmCreateVc (NDIS 5.1)) no Windows XP.
da 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_MCM_Function(ndis)

Consulte também

miniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc