Função NdisClCloseAddressFamily (ndis.h)

NdisClCloseAddressFamily libera a associação entre um protocolo de 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.

Retornar valor

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 do cliente Função ProtocolClCloseAfComplete quando essa operação é concluída.

If NdisClCloseAddressFamily retorna NDIS_STATUS_PENDING, um cliente que está aguardando suaA 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á o tratamento da solicitação NdisCmNotifyCloseAddressFamily , causando assim um deadlock.

Comentários

Um cliente normalmente 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 do processamento de um Solicitação NdisCmNotifyCloseAddressFamily .

O NDIS chama o de um cliente A 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 registre novamente a família de endereços compatível com essa NIC. Isso, por sua vez, causa uma chamada subsequente para o cliente Função ProtocolCoAfRegisterNotify . Em qualquer cenário, o do clienteA função ProtocolUnbindAdapterEx deve chamar NdisClCloseAddressFamily com qualquer NdisAfHandle pendente que esteja usando atualmente que dependa 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 miniporte antes de suaA função ProtocolUnbindAdapterEx chama NdisCloseAdapterEx.

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

Antes de uma chamada para NdisClCloseAddressFamily, o cliente pode usar o NdisAfHandle enquanto o AF está aberto ou enquanto um A operação ProtocolClNotifyCloseAf está pendente. Se a opçãoA 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
Cliente mínimo com suporte 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.
Plataforma de Destino Área de Trabalho
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_Protocol_Driver_Function(ndis)

Confira também

NdisClCloseCall

NdisClDeregisterSap

NdisClOpenAddressFamilyEx

ProtocolClCloseAfComplete

ProtocolCmCloseAf

ProtocolCoAfRegisterNotify

ProtocolUnbindAdapterEx