Condividi tramite


Eliminazione di un vc

Solo il client orientato alla connessione, il gestore chiamate o il driver MCM che ha avviato la creazione di un circuito virtuale (VC) può avviare l'eliminazione di tale vc. Un client elimina quindi un vc creato in precedenza per una chiamata in uscita, un gestore chiamate o un driver MCM elimina un vc creato in precedenza per una chiamata in ingresso sulla rete e un gestore chiamate elimina un vc creato in precedenza per lo scambio di messaggi di segnalazione in rete. Un driver MCM non chiama NDIS per eliminare un vc creato per lo scambio di messaggi di segnalazione. Il driver MCM elimina tale vc con un'operazione interna opaca per NDIS.

Un client o un gestore chiamate orientato alla connessione avvia l'eliminazione di un oggetto VC con NdisCoDeleteVc.

Nella figura seguente viene illustrato un client di un gestore chiamate che avvia l'eliminazione di un oggetto VC.

Diagramma che mostra un client di un gestore chiamate che avvia l'eliminazione di un oggetto VC.

Nella figura seguente viene illustrato un client di un driver MCM che avvia l'eliminazione di un oggetto VC.

Diagramma che mostra un client di un driver MCM che avvia l'eliminazione di un oggetto VC.

Nella figura seguente viene illustrato un gestore chiamate che avvia l'eliminazione di un vc.

Diagramma che mostra un gestore chiamate che avvia l'eliminazione di un oggetto VC.

Quando un client o un gestore chiamate chiama NdisCoDeleteVc o quando un driver MCM chiama NdisMCmDeleteVc, non deve essere presente alcuna chiamata in sospeso nel vc specificato e che VC deve essere già stato disattivato. Per soddisfare questi requisiti implica che vengono soddisfatte le condizioni seguenti:

La chiamata di un client o del gestore chiamate a NdisCoDeleteVc fa sì che NDIS chiami la funzione MiniportCoDeleteVc del driver miniport sottostante e la funzione ProtocolCoDeleteVc del client o del gestore chiamate con cui il chiamante condivide NdisVcHandle (vedere le tre figure precedenti).

MiniportCoDeleteVc libera tutte le risorse allocate per vc, nonché il contesto del driver miniport per il vc. ProtocolCoDeleteVc rilascia tutte le risorse usate dal client o dal gestore chiamate per eseguire operazioni sullo stato e tenere traccia dello stato per il vc. Sia MiniportCoDeleteVc che ProtocolCoDeleteVc sono funzioni sincrone che non possono restituire NDIS_STATUS_PENDING.

Un driver MCM avvia l'eliminazione di un vc con NdisMCmDeleteVc(vedere la figura seguente).

Diagramma che mostra un driver MCM che avvia l'eliminazione di un vc.

La chiamata di un driver MCM a NdisMCmDeleteVc fa sì che NDIS chiami la funzione ProtocolCoDeleteVc del client con cui il driver MCM ha condiviso NdisVcHandle .

Quando NdisCoDeleteVc o NdisMCmDeleteVc restituisce il controllo, NdisVcHandle non è più valido.