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 |
---|---|
|
O NDIS criou a VC com êxito. |
|
O NDIS não pôde alocar memória suficiente para configurar a VC. |
|
O NdisAfHandle especificado é inválido. |
|
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) |