Udostępnij przez


Dezaktywowanie vc

Menedżer połączeń wywołuje NdisCmDeactivateVc jako niezbędny krok w zamykaniu połączenia wychodzącego lub przychodzącego, zazwyczaj po wymianie pakietów ze składnikami sieciowymi, które usuwają połączenie (zobacz Client-Initiated Żądanie zamknięcia połączenia i Żądanie przychodzące zamknięcia połączenia). Sterownik MCM wykonuje to samo, wywołując NdisMCmDeactivateVc.

Wywołanie NdisCmDeactivateVc powoduje, że NDIS wywołuje funkcję MiniportCoDeactivateVc podstawowego sterownika miniportu (zobacz poniższą ilustrację). MiniportCoDeactivateVc komunikuje się z kartą sieciową w celu zakończenia całej komunikacji przez ten VC (na przykład wyczyszczenie buforów odbierania lub wysyłania w karcie).

Diagram przedstawiający menedżera wywołań inicjującego dezaktywację VC.

Przed dezaktywacją VC sterownik miniportu musi zakończyć wszelkie oczekujące transfery na VC. Oznacza to, że sterownik miniportu musi poczekać, aż zakończy wszystkie trwające operacje wysyłania i aż wszystkie pakiety odbiorcze zostaną do niego zwrócone. Po dezaktywacji VC sterownik miniportu nie może przekazywać danych odbieranych lub wysyłanych na VC.

Należy pamiętać, że MiniportCoDeactivateVc nie usuwa vc. Twórca (klient, menedżer wywołań lub sterownik MCM) określonego VC, który nie będzie ponownie używany, wywołuje NdisCoDeleteVc, aby usunąć tenVC. Dezaktywowany VC można ponownie uaktywnić przez klienta zorientowanego na połączenie, menedżera wywołań lub sterownik MCM.

MiniportCoDeactivateVc można zakończyć synchronicznie lub asynchronicznie. Wywołanie funkcji NdisMCoDeactivateVcComplete. powoduje, że NDIS wywołuje funkcję ProtocolCmDeactivateVcComplete menedżera wywołań, który pierwotnie zażądał dezaktywacji VC. Zakończenie dezaktywacji oznacza, że wszystkie parametry połączenia dla VC używane podczas aktywacji nie są już prawidłowe. Dalsze korzystanie z VC jest zabronione, z wyjątkiem ponownego aktywowania go przy użyciu nowego zestawu parametrów wywołania.

Wywołanie sterownika MCM do NdisMCmDeactivateVc informuje NDIS, że dezaktywował VC lub zmienił parametry połączenia na zestawionym VC (zobacz poniższą ilustrację). Usługa NDIS kończy sekwencję dezaktywacji poprzez wywołanie funkcji ProtocolCmDeactivateVcComplete sterownika MCM.

Diagram ilustrujący sterownik MCM inicjujący dezaktywację VC.

Sterownik MCM nie wywołuje funkcji NdisMCmDeactivateVc, aby dezaktywować wirtualne połączenia używane do wymiany komunikatów sygnalizacji między sterownikiem MCM a składnikami sieciowymi, takimi jak przełącznik. Sterownik MCM dezaktywuje sygnał VC wewnętrznie bez wywoływania żadnej funkcji NdisXxx.