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

A função ProtocolCmCloseAf é uma função necessária que libera recursos por aberto para uma família de endereços compatível com um gerenciador de chamadas.

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

Sintaxe

PROTOCOL_CM_CLOSE_AF ProtocolCmCloseAf;

NDIS_STATUS ProtocolCmCloseAf(
  [in] NDIS_HANDLE CallMgrAfContext
)
{...}

Parâmetros

[in] CallMgrAfContext

Especifica o identificador para a área de contexto por AF do gerenciador de chamadas, originalmente fornecida ao NDIS pela função ProtocolCmOpenAf do gerenciador de chamadas.

Retornar valor

ProtocolCmCloseAf retorna a status de suas operações como uma das seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
Indica que o gerenciador de chamadas liberou ou desativou com êxito todos os recursos alocados em nome do cliente orientado à conexão que abriu essa instância da família de endereços.
NDIS_STATUS_PENDING
Indica que a solicitação para fechar a instância aberta da família de endereços será concluída de forma assíncrona. O gerenciador de chamadas deve chamar NdisCmCloseAddressFamilyComplete quando todas essas operações tiverem sido concluídas.

Comentários

ProtocolCmCloseAf libera e/ou desativa todos os recursos que foram alocados pelo gerenciador de chamadas em sua função ProtocolCmOpenAf . O gerenciador de chamadas também deve desfazer quaisquer outras ações executadas em nome do cliente orientado à conexão quando a família de endereços foi aberta por esse cliente.

Se houver solicitações ou conexões pendentes ainda abertas em uma família de endereços armazenada no CallMgrAfContext, um gerenciador de chamadas poderá responder à solicitação de um cliente para fechar a família de endereços de qualquer uma das seguintes maneiras:

  • O gerenciador de chamadas pode falhar na solicitação com NDIS_STATUS_NOT_ACCEPTED.
  • O gerenciador de chamadas pode retornar NDIS_STATUS_PENDING. Depois que o cliente tiver fechado todas as chamadas e desregistrado todos os SAPs, o gerenciador de chamadas poderá fechar a família de endereços e chamar NdisCmCloseAddressFamilyComplete ou NdisMCmCloseAddressFamilyComplete para notificar o cliente. Essa é a resposta preferencial.

Exemplos

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

PROTOCOL_CM_CLOSE_AF MyCmCloseAf;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCmCloseAf(
    NDIS_HANDLE  CallMgrAfContext
    )
  {...}

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

Confira também

NdisCmCloseAddressFamilyComplete

ProtocolCmOpenAf