Eingehende Anforderung zum Schließen eines Anrufs
Wenn der Remoteclient einen Anruf schließt, muss der lokale Anruf-Manager oder MCM-Treiber diese eingehende Anforderung an den lokalen Client angeben. Um eine solche Anforderung anzugeben, ruft ein Anrufmanager NdisCmDispatchIncomingCloseCall auf, wobei closeStatus auf NDIS_STATUS_SUCCESS festgelegt ist (siehe folgende Abbildung).
Ein MCM-Treiber ruft NdisMCmDispatchIncomingCloseCall auf, um eine eingehende Anforderung zum Schließen eines Anrufs anzugeben (siehe folgende Abbildung).
Ein Anrufmanager oder MCM-Treiber kann auch Ndis(M)CmDispatchIncomingCloseCall aufrufen:
Über die ProtocolCmIncomingCallComplete-Funktion , wenn ermittelt wird, dass der verbindungsorientierte Client eine inakzeptable Änderung der Anrufparameter als Reaktion auf einen zuvor eingehenden Anruf anfordert, der vom Anruf-Manager oder MCM-Treiber angegeben wird (siehe Eingehende Anforderung zum Ändern von Anrufparametern).
Wenn ungewöhnliche Netzwerkbedingungen den Anruf-Manager zwingen, aktive Anrufe abzunehmen.
Der Aufruf von Ndis(M)CmDispatchIncomingCloseCall bewirkt, dass NDIS die ProtocolClIncomingCloseCall-Funktion des verbindungsorientierten Clients für diese Verbindung aufruft. ProtocolClIncomingCloseCall sollte alle protokollbestimmten Vorgänge ausführen, z. B. die Benachrichtigung des eigenen Clients, dass die Verbindung unterbrochen wird. Wenn es sich bei dem zu schließenden Aufruf um eine vom Client erstellte Multipoint-VC handelt, muss ProtocolClIncomingCloseCallNdisClDropParty ein oder mehrere Male aufrufen, bis nur eine einzelne Partei auf der Vc verbleibt (siehe Löschen einer Partei von einem Multipoint-Anruf).
ProtocolClIncomingCloseCall muss dann NdisClCloseCall aufrufen (mit dem Handle für die letzte Partei auf der Vc, wenn die Vc eine vom Client erstellte Multipoint-VC ist), um zu bestätigen, dass der Client nicht mehr versucht, Daten zu dieser bestimmten Vc zu senden oder zu empfangen. Wenn der Anruf-Manager oder MCM-Treiber diese VC erstellt hat, sollte ProtocolClIncomingCloseCall nach dem Aufruf von NdisClCloseCall die Steuerung zurückgeben. Der Anruf-Manager oder MCM-Treiber muss auch den Vc deaktivieren (siehe Deaktivieren einer Vc).
Wenn der Client diese Vc ursprünglich für einen ausgehenden Anruf erstellt hat und CloseStatus NDIS_STATUS_SUCCESS ist, kann ProtocolClIncomingCloseCall optional die Vc mit NdisCoDeleteVc abreißen (siehe Löschen einer Vc) oder die Vc für einen anderen Aufruf wiederverwenden. Wenn CloseStatus nicht NDIS_STATUS_SUCCESS ist, muss ProtocolClIncomingCloseCallNdisCoDeleteVc aufrufen.
Wenn der Anruf-Manager oder DER MCM-Treiber diese Vc ursprünglich für einen eingehenden Anruf erstellt hat, kann der Anrufmanager oder MCM-Treiber den Nachweis optional löschen , indem er NdisCoDeleteVc oder NdisMCmDeleteVc aufruft.