Compartilhar via


Função NdisClCloseAddressFamily (ndis.h)

NdisClCloseAddressFamily libera a associação entre um protocolo cliente e um AF registrado do gerenciador de chamadas ou do driver MCM para uma NIC específica à qual o cliente está associado.

Sintaxe

NDIS_STATUS NdisClCloseAddressFamily(
  [in] NDIS_HANDLE NdisAfHandle
);

Parâmetros

[in] NdisAfHandle

Especifica o identificador fornecido pelo NDIS retornado por NdisClOpenAddressFamilyEx.

Valor de retorno

Quando NdisClCloseAddressFamily retorna qualquer coisa diferente de NDIS_STATUS_PENDING, o cliente deve fazer uma chamada interna para sua função ProtocolClCloseAfComplete. Caso contrário, o NDIS chamará o cliente função ProtocolClCloseAfComplete quando essa operação for concluída.

Se NdisClCloseAddressFamily retorna NDIS_STATUS_PENDING, um cliente que está aguardando sua a função ProtocolClCloseAfComplete a ser chamada não deve bloquear o thread atual, pois isso pode causar um deadlock. Isso é particularmente importante quando um cliente chama NdisClCloseAddressFamily no contexto de manipulação de um solicitação NdisCmNotifyCloseAddressFamily. Nesse caso, o gerenciador de chamadas pode não fechar a família de endereços até que o cliente tenha retornado do tratamento da solicitação NdisCmNotifyCloseAddressFamily. Se o cliente bloquear o thread atual, o cliente nunca concluirá a manipulação da solicitação NdisCmNotifyCloseAddressFamily, causando um deadlock.

Observações

Um cliente geralmente chama NdisClCloseAddressFamily de sua
função ProtocolUnbindAdapterEx, depois de fechar todos os VCs abertos do cliente na associação com chamadas para NdisClCloseCall e/ou NdisClDeregisterSap. Um cliente também pode chamar NdisClCloseAddressFamily no contexto de processamento de um solicitação NdisCmNotifyCloseAddressFamily.

O NDIS chama o cliente função ProtocolUnbindAdapterEx sempre que uma NIC subjacente à qual esse cliente está associado está sendo removida do computador ou está sendo reconfigurada. Uma reconfiguração PnP do driver de miniporto subjacente faz com que o gerenciador de chamadas ou o driver MCM reregistre a família de endereços que ele dá suporte sobre essa NIC. Isso, por sua vez, causa uma chamada subsequente para o cliente função ProtocolCoAfRegisterNotify. Em qualquer cenário, o cliente função protocolUnbindAdapterEx deve chamar NdisClCloseAddressFamily com qualquer pendente NdisAfHandle que está usando atualmente que depende do driver de miniporto subjacente.

Como diretriz geral, um cliente deve liberar todos os recursos alocados para comunicações orientadas à conexão por meio do driver de miniporto antes de sua função ProtocolUnbindAdapterEx chama NdisCloseAdapterEx .

O NdisAfHandle passado para NdisClCloseAddressFamily torna-se inválido para o cliente assim que essa chamada ocorrer.

Antes de uma chamada para NdisClCloseAddressFamily, o cliente pode usar o NdisAfHandle enquanto o AF estiver aberto ou enquanto um a operação de ProtocolClNotifyCloseAf está pendente. Se o função ProtocolClNotifyCloseAf retorna NDIS_STATUS_PENDING, use o identificador no chamada NdisClNotifyCloseAddressFamilyComplete após a conclusão da operação de fechamento.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisClCloseAddressFamily (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisClCloseAddressFamily (NDIS 5.1)) no Windows XP.
da Plataforma de Destino Área de trabalho
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI Irql_Protocol_Driver_Function(ndis)

Consulte também

NdisClCloseCall

NdisClDeregisterSap

NdisClOpenAddressFamilyEx

ProtocolClCloseAfComplete

ProtocolCmCloseAf

ProtocolCoAfRegisterNotify

ProtocolUnbindAdapterEx