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

A função ProtocolCmDeactivateVcComplete é uma função necessária. ProtocolCmDeactivateVcComplete conclui o processamento de uma solicitação iniciada pelo gerenciador de chamadas para que o driver de miniporto subjacente (e o NDIS) desative uma VC para a qual NdisCmDeactivateVc retornou anteriormente NDIS_STATUS_PENDING.

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

Sintaxe

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

void ProtocolCmDeactivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext
)
{...}

Parâmetros

[in] Status

Especifica o status final da desativação.

[in] CallMgrVcContext

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

Retornar valor

Nenhum

Comentários

O NDIS geralmente chama ProtocolCmDeactivateVcComplete no contexto do encerramento de uma chamada do gerenciador de chamadas em nome de um cliente orientado à conexão. O gerenciador de chamadas normalmente chama NdisCmDeactivateVc de sua função ProtocolCmCloseCall . Sempre que NdisCmDeactivateVc retorna NDIS_STATUS_PENDING, o NDIS chama posteriormente sua função ProtocolCmDeactivateVcComplete .

Ou seja, quando o driver de miniporto orientado à conexão subjacente desativou a VC, o NDIS chama ProtocolCmDeactivateVcComplete. O status final da desativação é encontrado no Status . Os valores possíveis para o status final incluem, mas não se limitam a:

ProtocolCmDeactivateVcComplete executa qualquer pós-processamento necessário para concluir a desativação de uma conexão virtual, como definir sinalizadores em sua área de estado para indicar que a conexão está inativa ou liberando recursos alocados dinamicamente usados enquanto a VC está ativa.

A conclusão da desativação significa que todos os parâmetros de chamada para a VC usada na ativação não são mais válidos. Qualquer uso adicional da VC é proibido, exceto para reativar com um novo conjunto de parâmetros de chamada.

Os gerentes de chamadas devem liberar todos os recursos alocados para a ativação de VC e retornar o controle o mais rápido possível. Se o gerenciador de chamadas tiver retornado anteriormente NDIS_STATUS_PENDING de sua função ProtocolCmCloseCall e todas as operações para fechar a chamada tiverem sido concluídas, ProtocolCmDeactivateVcComplete agora deverá chamar NdisCmCloseCallComplete.

Exemplos

Para definir uma função ProtocolCmDeactivateVcComplete , 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 gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolCmDeactivateVcComplete chamada "MyCmDeactivateVcComplete", use o tipo PROTOCOL_CM_DEACTIVATE_VC_COMPLETE conforme mostrado neste exemplo de código:

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;

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

_Use_decl_annotations_
VOID
 MyCmDeactivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext
    )
  {...}

O tipo de função PROTOCOL_CM_DEACTIVATE_VC_COMPLETE é 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 PROTOCOL_CM_DEACTIVATE_VC_COMPLETE 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 ProtocolCmDeactivateVcComplete (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte ProtocolCmDeactivateVcComplete (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall