Condividi tramite


Funzione NdisClCloseAddressFamily (ndis.h)

NdisClCloseAddressFamily rilascia l'associazione tra un protocollo client e l'AF registrato da un gestore chiamate o un driver MCM per una scheda di interfaccia di rete specifica a cui è associato il client.

Sintassi

NDIS_STATUS NdisClCloseAddressFamily(
  [in] NDIS_HANDLE NdisAfHandle
);

Parametri

[in] NdisAfHandle

Specifica l'handle fornito da NDIS restituito da NdisClOpenAddressFamilyEx.

Valore restituito

Se NdisClCloseAddressFamily restituisce qualsiasi valore diverso da NDIS_STATUS_PENDING, il client deve effettuare una chiamata interna al relativo Funzione ProtocolClCloseAfComplete . In caso contrario, NDIS chiama il client Funzione ProtocolClCloseAfComplete al termine di questa operazione.

Se NdisClCloseAddressFamily restituisce NDIS_STATUS_PENDING, un client in attesa del relativo La funzione ProtocolClCloseAfComplete da chiamare non deve bloccare il thread corrente perché ciò potrebbe causare un deadlock. Ciò è particolarmente importante quando un client chiama NdisClCloseAddressFamily nel contesto della gestione di un Richiesta NdisCmNotifyCloseAddressFamily . In questo caso, il gestore chiamate potrebbe non chiudere la famiglia di indirizzi fino a quando il client non ha restituito la gestione della richiesta NdisCmNotifyCloseAddressFamily . Se il client blocca il thread corrente, il client non completerà mai la gestione della richiesta NdisCmNotifyCloseAddressFamily , causando così un deadlock.

Commenti

Un client chiama in genere NdisClCloseAddressFamily dal relativo
La funzione ProtocolUnbindAdapterEx , dopo la chiusura di tutte le schede virtuali aperte del client nell'associazione con chiamate a NdisClCloseCall e/o NdisClDeregisterSap. Un client può anche chiamare NdisClCloseAddressFamily nel contesto dell'elaborazione di un Richiesta NdisCmNotifyCloseAddressFamily .

NDIS chiama un client Funzione ProtocolUnbindAdapterEx ogni volta che una scheda di interfaccia di rete sottostante a cui è associato il client viene rimossa dal computer o viene riconfigurata. Una riconfigurazione PnP del driver miniport sottostante fa sì che il gestore chiamate o il driver MCM riregistri la famiglia di indirizzi supportata tramite tale scheda di interfaccia di rete. Ciò, a sua volta, causa una chiamata successiva al client Funzione ProtocolCoAfRegisterNotify . In entrambi gli scenari, il client La funzione ProtocolUnbindAdapterEx deve chiamare NdisClCloseAddressFamily con qualsiasi NdisAfHandle in sospeso attualmente in uso che dipende dal driver miniport sottostante.

Come linea guida generale, un client deve rilasciare tutte le risorse allocate per le comunicazioni orientate alla connessione tramite il driver miniport prima del relativo La funzione ProtocolUnbindAdapterEx chiama NdisCloseAdapterEx.

NdisAfHandle passato a NdisClCloseAddressFamily diventa non valido per il client non appena si verifica questa chiamata.

Prima di una chiamata a NdisClCloseAddressFamily, il client può usare NdisAfHandle mentre l'AF è aperto o mentre è L'operazione ProtocolClNotifyCloseAf è in sospeso. Se il parametro La funzione ProtocolClNotifyCloseAf restituisce NDIS_STATUS_PENDING, usare l'handle in Chiamata NdisClNotifyCloseAddressFamilyComplete al termine dell'operazione di chiusura.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisClCloseAddressFamily (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisClCloseAddressFamily (NDIS 5.1)) in Windows XP.
Piattaforma di destinazione Desktop
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Irql_Protocol_Driver_Function(ndis)

Vedi anche

NdisClCloseCall

NdisClDeregisterSap

NdisClOpenAddressFamilyEx

ProtocolClCloseAfComplete

ProtocolCmCloseAf

ProtocolCoAfRegisterNotify

ProtocolUnbindAdapterEx