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

A função ProtocolClCloseAfComplete é usada por clientes NDIS orientados à conexão. Todos os clientes NDIS orientados a conexão devem ter funções ProtocolClCloseAfComplete para concluir as operações assíncronas iniciadas com NdisClCloseAddressFamily.

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

Sintaxe

PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;

void ProtocolClCloseAfComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolAfContext
)
{...}

Parâmetros

[in] Status

Especifica o status final da solicitação iniciada pelo cliente para fechar a família de endereços, que pode ser uma das seguintes:

NDIS_STATUS_SUCCESS

A família do endereço foi fechada. O NdisAfHandle que representava a família de endereços abertos, que o cliente armazenava em sua área ProtocolAfContext , agora é inválido.

NDIS_STATUS_FAILURE

O AF associou VC(s) e/ou registrou SAP(s) que o cliente deve liberar antes de tentar fechar o AF ou o cliente chamado NdisClCloseAddressFamily duas vezes porque o NDIS descobriu que o estado af estava marcado como "fechamento".

[in] ProtocolAfContext

Especifica o identificador fornecido pelo cliente para sua área de contexto por AF. O cliente originalmente configurou essa área de contexto e passou esse identificador para o NDIS com NdisClOpenAddressFamilyEx.

Retornar valor

Nenhum

Comentários

Depois de garantir que não tenha VCs pendentes e/ou SAPs registrados em sua família de endereços abertos, um cliente chama NdisClCloseAddressFamily para excluir a associação entre si, um gerenciador de chamadas e uma NIC subjacente específica. O NDIS chama a função ProtocolCmCloseAf para o gerenciador de chamadas que esse cliente usou originalmente para abrir a família de endereços como uma operação assíncrona. Depois de chamar NdisClCloseAddressFamily, o cliente deve considerar o NdisAfHandle inválido.

Consequentemente, o cliente deve ter uma função ProtocolClCloseAfComplete , que o NDIS chama quando a operação assíncrona close-AF é feita. Se o Status de entrada for NDIS_STATUS_SUCCESS, o cliente poderá liberar sua área de contexto por AF.

Exemplos

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

PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;

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

_Use_decl_annotations_
VOID
 MyClCloseAfComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

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

Confira também

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx