Funzione NdisClCloseAddressFamily (ndis.h)
NdisClCloseAddressFamily rilascia l'associazione tra un protocollo client e l'AF registrato dal gestore chiamate o dal driver MCM per una specifica scheda di interfaccia di rete 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
Quando 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 ProtocolClCloseAfComplete funzione al termine dell'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 oggetto richiesta di NdisCmNotifyCloseAddressFamily. In questo caso, il gestore chiamate potrebbe non chiudere la famiglia di indirizzi fino a quando il client non ha restituito la gestione del NdisCmNotifyCloseAddressFamily richiesta. Se il client blocca il thread corrente, il client non completerà mai la gestione del NdisCmNotifyCloseAddressFamily richiesta, causando quindi un deadlock.
Osservazioni
Un client chiama in genere NdisClCloseAddressFamily dal relativo
funzione ProtocolUnbindAdapterEx, dopo aver chiuso tutte le VC aperte del client nell'associazione con chiamate a NdisClCloseCall e/o NdisClDeregisterSap. Un client può anche chiamare NdisClCloseAddressFamily nel contesto dell'elaborazione di un oggetto
richiesta di NdisCmNotifyCloseAddressFamily.
NDIS chiama un client funzione ProtocolUnbindAdapterEx ogni volta che viene rimossa una scheda di interfaccia di rete sottostante a cui è associato il client 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, provoca una chiamata successiva al client funzione di ProtocolCoAfRegisterNotify. In entrambi gli scenari, il client funzione ProtocolUnbindAdapterEx deve chiamare NdisClCloseAddressFamily con qualsiasi NdisAfHandle attualmente in uso 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 ProtocolUnbindAdapterEx chiama NdisCloseAdapterEx.
Il 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 il NdisAfHandle mentre l'AF è aperto o mentre un 'operazione di ProtocolClNotifyCloseAf è in sospeso. Se l'oggetto la funzione ProtocolClNotifyCloseAf restituisce NDIS_STATUS_PENDING, usare l'handle in NdisClNotifyCloseAddressFamilyComplete chiamata al termine dell'operazione di chiusura.
Fabbisogno
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) |