NdisClCloseCall-Funktion (ndis.h)
NdisClCloseCall fordert an, dass ein Aufruf auf der angegebenen VC abgerissen wird.
Syntax
NDIS_STATUS NdisClCloseCall(
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in] UINT Size
);
Parameter
[in] NdisVcHandle
Handle mit der VC des Aufrufs, der geschlossen oder getrennt wird. Dieses Handle wurde von NDIS bereitgestellt, als die VC ursprünglich mit NdisCoCreateVc erstellt wurde, sei es vom Client zur Vorbereitung für einen ausgehenden Anruf oder vom Anruf-Manager zur Vorbereitung auf das Senden eines eingehenden Anrufs an den Client.
[in, optional] NdisPartyHandle
Handle mit der letzten Partei, die auf einer Mehrpunkt-VC oder NULL gelöscht werden soll. Wenn es sich um eine Mehrpunkt-VC handelt, hat der Client dieses Handle entweder von einem vorherigen Aufruf von NdisClMakeCall oder NdisClAddParty abgerufen.
[in, optional] Buffer
Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der alle Daten enthält, die an die Partei auf dem Remoteknoten übertragen werden sollen, wenn die Verbindung geschlossen wird. Je nach zugrunde liegendem Medium kann dieser Zeiger NULL sein.
[in] Size
Gibt die Größe in Bytes unter Puffer null an, wenn BufferNULL ist.
Rückgabewert
Wenn NdisClCloseCall etwas anderes als NDIS_STATUS_PENDING zurückgibt, sollte der Client einen internen Aufruf an seine ProtocolClCloseCallComplete-Funktion . Andernfalls ruft NDIS die ProtocolClCloseCallComplete-Funktion des Clients auf, wenn dieser Vorgang abgeschlossen ist.
Hinweise
Clients rufen in der Regel NdisClCloseCall in einem der folgenden Umstände auf:
- Um einen eingerichteten Anruf zu schließen, unabhängig davon, ob der Anruf vom Client mit NdisClMakeCall initiiert oder von einem Remotepeer angeboten und vom Client akzeptiert wurde ProtocolClIncomingCall-Funktion .
-
Wählen Sie in der Liste ProtocolClIncomingCloseCall-Funktion , um einen etablierten Aufruf abreißen zu können.
Dies tritt auf, wenn die Remotepartei einen eingehenden Anruf schließt, den die Remotepartei ursprünglich initiiert hat und den der Client akzeptiert hat. Bei vom Client initiierten ausgehenden Anrufen tritt dies entweder auf, wenn die Remotepartei die Punkt-zu-Punkt-Verbindung auf dem Remoteknoten schließt oder wenn die letzte verbleibende Partei auf einer Multipoint-VC den Aufruf auf dem Remoteknoten schließt.
-
Wählen Sie in der Liste ProtocolClMakeCallComplete-Funktion zum Abreißen eines vom Client initiierten Versuchs, einen ausgehenden Aufruf auszuführen.
Dies tritt auf, wenn der Anruf-Manager die vom Client angegebenen Aufrufparameter geändert hat, die an NdisClMakeCall übergeben wurden und der Client diese Änderungen für nicht akzeptabel hält.
-
Über die ProtocolClIncomingQoSChange-Funktion , um einen eingerichteten Aufruf abreißen zu können.
Dies tritt auf, wenn eine von der anderen Partei auf der VC vorgeschlagene QoS-Änderung für den Client inakzeptabel ist.
-
Wählen Sie in der Liste ProtocolClModifyCallQoSComplete-Funktion , um einen eingerichteten Aufruf zu beenden.
Dies tritt auf, wenn eine vom Client vorgeschlagene QoS-Änderung für die VC nicht akzeptiert wird und die vom CM geänderte QoS an ProtocolClModifyCallQoSComplete für den Client inakzeptabel ist.
Der Aufruf von NdisClCloseCall eines Clients bewirkt, dass NDIS NdisVcHandle als schließend markiert und die ProtocolCmCloseCall-Funktion des CM aufruft.
Um einen etablierten Aufruf einer vom Client erstellten Mehrpunkt-VC zu beenden, muss der Client NdisClDropParty mindestens ein Mal aufrufen, um alle bis auf die letzte Partei auf der VC freizugeben, bevor NdisClCloseCall aufgerufen wird. Der Anruf-Manager schlägt die Anforderung eines Clients zum Schließen eines mehrpunktigen Anrufs fehl, wenn für die angegebene VC noch mehrere Parteien verbunden sind. Das an NdisClCloseCall übergebene NdisPartyHandle kann ein beliebiges gültiges Handle sein, das der Client aus den vorherigen Aufrufen von NdisClAddParty oder NdisClMakeCall mit dem angegebenen NdisVcHandle abgerufen hat.
Wenn Remoteparteien eines vom Client initiierten Mehrpunktaufrufs anfordern, dass ihre Verbindungen geschlossen werden, ruft NDIS die ProtocolClDropParty-Funktion dieses Clients auf, solange mehr als eine ausstehende Partei auf der vom Client erstellten Multipoint-VC vorhanden ist. Wenn die letzte verbleibende Remotepartei ihre Verbindung schließt, ruft NDIS die des Clients auf. ProtocolClIncomingCloseCall-Funktion stattdessen. Folglich muss die ProtocolClIncomingCloseCall-Funktion eines jeden Clients, der Multipointverbindungen eingerichtet hat, die letzte verbleibende Partei auf ihren Multipoint-VCs identifizieren und die entsprechende NdisPartyHandle an NdisClCloseCall übergeben.
Nachdem der Client ein NdisPartyHandle mit NdisClCloseCall freigegeben hat, kann er die Ressourcen für den von der Gruppe verwalteten Zustand freigeben (oder zur Wiederverwendung neu initialisieren). Der Client kann seine Ressourcen pro VC jedoch nach Abschluss des mit NdisClCloseCall initiierten Vorgangs nicht in ähnlicher Weise freigeben oder wiederverwenden, da das NdisVcHandle, das nicht für einen weiteren Aufruf wiederverwendet werden kann, da es als schließend markiert ist, weiterhin gültig ist, bis die VC zerstört wird. Entweder muss der Client NdisCoDeleteVc aufrufen, wenn er die VC für einen ausgehenden Aufruf erstellt hat, bevor er freigegeben wird, oder seine Ressourcen pro VC neu initialisiert, oder der Client muss die Freigabe oder Erneute Initialisierung dieser Ressourcen zurückstellen, bis seine ProtocolCoDeleteVc-Funktion aufgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisClCloseCall (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisClCloseCall (NDIS 5.1)) in Windows XP. |
Zielplattform | Desktop |
Kopfzeile | ndis.h (einschließlich Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_Protocol_Driver_Function(ndis) |