Compartilhar via


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

A função ProtocolCoDeleteVc é necessária. Essa função divide o estado do cliente ou do gerenciador de chamadas para uma conexão virtual estabelecida que está sendo fechada pelo criador original dessa VC.

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

Sintaxe

PROTOCOL_CO_DELETE_VC ProtocolCoDeleteVc;

NDIS_STATUS ProtocolCoDeleteVc(
  [in] NDIS_HANDLE ProtocolVcContext
)
{...}

Parâmetros

[in] ProtocolVcContext

Especifica o identificador para a área de contexto por VC do cliente ou do gerenciador de chamadas. O protocolo originalmente forneceu esse identificador de sua função ProtocolCoCreateVc .

Retornar valor

ProtocolCoDeleteVc pode retornar um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
O protocolo liberou ou preparou para reutilizar todos os recursos que ele originalmente alocou para a VC.
NDIS_STATUS_NOT_ACCEPTED
A VC ainda está ativa e o protocolo tem operações pendentes pendentes na VC para que não possa ser destruída.
NDIS_STATUS_XXX
O protocolo falhou na exclusão de VC por um motivo determinado pelo driver.

Comentários

ProtocolCoDeleteVc é a recíproca da função ProtocolCoCreateVc do driver. Em geral, ele libera todos os recursos dinâmicos e estruturas que o gerenciador de chamadas ou o cliente alocaram anteriormente para executar operações na VC ativa.

Quando ProtocolCoDeleteVc retorna o controle com NDIS_STATUS_SUCCESS, o NdisVcHandle que sua função ProtocolCoCreateVc armazenada na área em ProtocolVcContext se torna inválido.

ProtocolCoDeleteVc pode retornar qualquer NDIS_STATUS_XXX determinado pelo driver para falhar na exclusão da VC, mas não pode retornar NDIS_STATUS_PENDING. As chamadas para ProtocolCoDeleteVc são inerentemente síncronas por natureza.

Exemplos

Para definir uma função ProtocolCoDeleteVc , 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 ProtocolCoDeleteVc chamada "MyCoDeleteVc", use o tipo PROTOCOL_CO_DELETE_VC conforme mostrado neste exemplo de código:

PROTOCOL_CO_DELETE_VC MyCoDeleteVc;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCoDeleteVc(
    NDIS_HANDLE  ProtocolVcContext
    )
  {...}

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

Confira também

NdisClCloseCall

NdisCmDispatchIncomingCloseCall

NdisCoCreateVc

NdisCoDeleteVc

ProtocolCoCreateVc