MINIPORT_CO_ACTIVATE_VC função de retorno de chamada (ndis.h)

A função MiniportCoActivateVc é necessária para miniportos orientados a conexão. MiniportCoActivateVc é chamado pelo NDIS para indicar ao driver de miniporto que uma conexão virtual está sendo ativada.

Nota Você deve declarar a função usando o tipo MINIPORT_CO_ACTIVATE_VC . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;

NDIS_STATUS MiniportCoActivateVc(
  [in]      NDIS_HANDLE MiniportVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parâmetros

[in] MiniportVcContext

Especifica o identificador para uma área de contexto alocada pelo driver de miniporto na qual o driver de miniporto mantém seu estado por VC. O driver de miniporto forneceu esse identificador para o NDIS de sua função MiniportCoCreateVc .

[in, out] CallParameters

Especifica os parâmetros de chamada, conforme especificado pelo gerenciador de chamadas, a serem estabelecidos para essa VC. Na saída, o driver de miniporto retornará parâmetros de chamada alterados se determinados sinalizadores forem definidos na estrutura CO_CALL_PARAMETERS .

Retornar valor

Código de retorno Descrição
NDIS_STATUS_SUCCESS
Indica que a VC foi ativada com êxito.
NDIS_STATUS_PENDING
Indica que o driver de miniporto concluirá a solicitação para ativar uma VC de forma assíncrona. Quando o driver de miniporta tiver terminado com suas operações, ele deverá chamar NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
Indica que os parâmetros de chamada especificados em CallParameters são inválidos ou ilegais para o tipo de mídia ao qual esse driver de miniporto dá suporte.
NDIS_STATUS_RESOURCES
Indica que o driver de miniporto não pôde ativar a VC porque não pôde alocar todos os recursos necessários que o driver de miniporto precisa para manter informações de estado sobre a VC ativa.

Comentários

O driver de miniporta deve validar os parâmetros de chamada para essa VC, conforme especificado em CallParameters, para verificar se o adaptador pode dar suporte à chamada solicitada. Se os parâmetros de chamada solicitados não puderem ser atendidos, o driver de miniporte deverá falhar na solicitação com NDIS_STATUS_INVALID_DATA.

MiniportCoActivateVc pode ser chamado muitas vezes para uma única VC a fim de alterar os parâmetros de chamada para uma chamada já ativa. Em cada chamada, o driver de miniporto deve validar os parâmetros e executar qualquer processamento conforme exigido pelo adaptador para atender à solicitação. No entanto, se ele não puder definir os parâmetros de chamada determinados, MiniportCoActivateVc deverá deixar a VC em um estado utilizável, pois o cliente orientado à conexão ou um gerenciador de chamadas pode continuar a enviar ou receber dados usando os parâmetros de chamada mais antigos.

Se os sinalizadores ROUND_UP_FLOW ou ROUND_DOWN_FLOW forem definidos na estrutura de parâmetros de chamada em CallParameters-MediaParameters-Flags>>, o driver de miniporto será solicitado a retornar a taxa de fluxo real da VC depois que a taxa de fluxo tiver sido arredondada de acordo com o sinalizador apropriado que foi definido. Se o driver de miniporta alterar qualquer um dos parâmetros de chamada porque esses sinalizadores foram definidos, ele deverá retornar os parâmetros de chamada reais em uso para a VC em CallParameters.

Se os parâmetros de chamada forem aceitáveis, MiniportCoActivateVc se comunicará com seu adaptador conforme necessário para preparar o adaptador para receber ou transmitir dados pela conexão virtual (em outras palavras, programar buffers de recebimento).

Exemplos

Para definir uma função MiniportCoActivateVc , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função MiniportCoActivateVc chamada "MyCoActivateVc", use o tipo MINIPORT_CO_ACTIVATE_VC conforme mostrado neste exemplo de código:

MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
NDIS_STATUS
 MyCoActivateVc(
    NDIS_HANDLE  MiniportVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

O tipo de função MINIPORT_CO_ACTIVATE_VC é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função MINIPORT_CO_ACTIVATE_VC no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte MiniportCoActivateVc (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte MiniportCoActivateVc (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete