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 NdisXxx orientadas por conexão relacionadas a essa VC.

Retornar valor

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 especificado é inválido.
NDIS_STATUS_XXX
O cliente falhou na criação da VC por algum motivo e o NDIS propaga o erro status retornado pela função ProtocolCoCreateVc para o driver MCM.

Comentários

Um driver MCM cria uma 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 para o cliente e o 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 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 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 (interna) 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 gerentes de chamadas e clientes autônomos, que se registram no NDIS como drivers de protocolo, chamam NdisCoCreateVc .

Requisitos

Requisito Valor
Cliente mínimo com suporte 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.
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)

Confira também

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc