Deaktivieren eines Nachweises
Ein Anrufmanager ruft NdisCmDeactivateVc als wesentlichen Schritt beim Schließen eines ausgehenden oder eingehenden Anrufs auf, in der Regel nach dem Paketaustausch mit Netzwerkkomponenten, die den Anruf abreißen (siehe Clientinitiierte Anforderung zum Schließen eines Anrufs und eingehende Anforderung zum Schließen eines Anrufs). Ein MCM-Treiber führt dasselbe durch Aufrufen von NdisMCmDeactivateVc aus.
Der Aufruf von NdisCmDeactivateVc bewirkt, dass NDIS die MiniportCoDeactivateVc-Funktion des zugrunde liegenden Miniporttreibers aufruft (siehe folgende Abbildung). MiniportCoDeactivateVc kommuniziert mit seinem Netzwerkadapter, um die gesamte Kommunikation über diesen Vc zu beenden (z. B. das Löschen von Empfangs- oder Sendepuffern auf dem Adapter).
Vor der Deaktivierung eines Nachweises muss der Miniporttreiber alle ausstehenden Übertragungen auf dem Vc durchführen. Das heißt, der Miniporttreiber muss warten, bis er alle laufenden Gesendeten abgeschlossen hat und bis alle angegebenen Empfangspakete an ihn zurückgegeben werden. Nach dem Deaktivieren des Nachweises kann der Miniporttreiber keine Empfangs- oder Übertragungssendungen auf dem Vc angeben.
Beachten Sie, dass MiniportCoDeactivateVc den Vc nicht löscht. Der Ersteller (Client, Anruf-Manager oder MCM-Treiber) einer bestimmten Vc, die nicht wiederverwendet wird, ruft NdisCoDeleteVc auf, um diese Vc zu zerstören. Eine deaktivierte Vc kann von einem verbindungsorientierten Client, einem Anrufmanager oder einem MCM-Treiber reaktiviert werden.
MiniportCoDeactivateVc kann synchron oder asynchron abgeschlossen werden. Ein Aufruf von NdisMCoDeactivateVcComplete. bewirkt, dass NDIS die ProtocolCmDeactivateVcComplete-Funktion des Aufruf-Managers aufruft, der die Vc-Deaktivierung ursprünglich angefordert hat. Der Abschluss der Deaktivierung bedeutet, dass alle Aufrufparameter für den bei der Aktivierung verwendeten Vc nicht mehr gültig sind. Jede weitere Verwendung des Nachweises ist untersagt, es sei denn, er wird mit einem neuen Satz von Aufrufparametern reaktiviert.
Der Aufruf eines MCM-Treibers an NdisMCmDeactivateVc informiert NDIS darüber, dass eine Vc deaktiviert oder die Aufrufparameter für einen eingerichteten Vc geändert wurden (siehe folgende Abbildung). NDIS schließt die Deaktivierungssequenz ab, indem die ProtocolCmDeactivateVcComplete-Funktion des MCM-Treibers aufgerufen wird.
Ein MCM-Treiber ruft NdisMCmDeactivateVc nicht auf, um VCs zu deaktivieren, die zum Austauschen von Signalnachrichten zwischen dem MCM-Treiber und Netzwerkkomponenten wie einem Switch verwendet werden. Ein MCM-Treiber deaktiviert eine Signalisierungs-VC intern, ohne eine NdisXxx-Funktion aufzurufen.