NdisClCloseCall-Funktion (ndis.h)
NdisClCloseCall fordert an, dass ein Aufruf der angegebenen VC heruntergerissen werden soll.
Syntax
NDIS_STATUS NdisClCloseCall(
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in] UINT Size
);
Parameter
[in] NdisVcHandle
Behandeln Sie den VC des Anrufs, der geschlossen oder getrennt wird. Dieser Handle wurde von NDIS bereitgestellt, als die VC ursprünglich mit NdisCoCreateVcerstellt wurde, unabhängig davon, ob der Client einen ausgehenden Anruf vorbereitet oder vom Anrufmanager zur Vorbereitung auf die Versendung eines eingehenden Anrufs an den Client vorbereitet wurde.
[in, optional] NdisPartyHandle
Handle to the last party to be dropped on a multipoint VC or NULL. Wenn es sich um eine vc mit mehreren Punkt handelt, hat der Client dieses Handle entweder aus einem vorherigen Aufruf von NdisClMakeCall oder NdisClAddParty-abgerufen.
[in, optional] Buffer
Zeigen Sie 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 Byte bei Puffer-null an, wenn Puffer-NULL-ist.
Rückgabewert
Wenn NdisClCloseCall alles andere als NDIS_STATUS_PENDING zurückgibt, sollte der Client einen internen Aufruf an seinen ProtocolClCloseCallComplete-Funktion. Andernfalls ruft NDIS die ProtocolClCloseCallComplete- funktion des Clients auf, wenn dieser Vorgang abgeschlossen ist.
Bemerkungen
Clients rufen in der Regel NdisClCloseCall- in einem der folgenden Situationen auf:
- Um einen etablierten Anruf zu schließen, ob der Anruf vom Client mit NdisClMakeCall initiiert wurde oder von einem Remotepeer angeboten und vom Client akzeptiert wurde ProtocolClIncomingCall-Funktion.
-
Vom
ProtocolClIncomingCloseCall Funktion, um einen etablierten Aufruf zu zerreißen.
Dies tritt auf, wenn die Remotepartei einen eingehenden Anruf schließt, den die Remotepartei ursprünglich initiiert hat und der Client akzeptiert hat. Bei vom Client initiierten ausgehenden Anrufen tritt dies entweder auf, wenn die Remotepartei die Point-to-Point-Verbindung auf dem Remoteknoten schließt oder wenn die letzte verbleibende Partei auf einem Multipoint-VC den Anruf auf dem Remoteknoten schließt.
-
Vom
ProtocolClMakeCallComplete--Funktion, um einen vom Client initiierten Versuch, einen ausgehenden Aufruf zu tätigen, abreißen.
Dies tritt auf, wenn der Anrufmanager die clientspezifischen Aufrufparameter geändert hat, die an NdisClMakeCall übergeben wurden, und der Client findet diese Änderungen inakzeptabel.
-
Von der ProtocolClIncomingQoSChange Funktion, um einen etablierten Aufruf zu zerreißen.
Dies tritt auf, wenn eine QoS-Änderung, die von der anderen Partei auf dem VC vorgeschlagen wird, für den Client nicht akzeptabel ist.
-
Vom
ProtocolClModifyCallQoSComplete--Funktion, um einen etablierten Aufruf zu zerreißen.
Dies tritt auf, wenn eine vom Client vorgeschlagene QoS-Änderung auf der VC nicht akzeptiert wird und die cm-geänderte QoS an ProtocolClModifyCallQoSComplete- für den Client nicht akzeptabel ist.
Der Aufruf eines Clients an NdisClCloseCall- bewirkt, dass NDIS die NdisVcHandle- als schließend kennzeichnet und die ProtocolCmCloseCall-Funktion des CM- aufruft.
Um einen etablierten Aufruf für einen vom Client erstellten Multipoint-VC zu zerlegen, muss der Client NdisClDropParty eine oder mehrere Male aufrufen, um alle, aber die letzte Partei auf dem VC freizugeben, bevor er NdisClCloseCallaufruft. Der Anrufmanager schlägt die Anforderung eines Clients fehl, einen Multipoint-Anruf zu schließen, wenn die angegebene VC immer noch mehr als eine Partei verbunden ist. Die NdisPartyHandle- an NdisClCloseCall übergeben wurde, kann ein beliebiger gültiger Handle sein, den der Client aus den vorherigen Aufrufen von NdisClAddParty oder NdisClMakeCall mit dem angegebenen NdisVcHandle abgerufen hat.
Da Remoteparteien einer clientinitiierten Multipoint-Aufrufanforderung, dass ihre Verbindungen geschlossen werden, ruft NDIS die ProtocolClDropParty- des Clients auf, solange mehrere ausstehende Parteien auf dem vom Client erstellten Multipoint VC vorhanden sind. Wenn die letzte verbleibende Remotepartei die Verbindung schließt, ruft NDIS den Client auf. ProtocolClIncomingCloseCall-Funktion. Folglich muss die ProtocolClIncomingCloseCall Funktion eines Clients, der Multipointverbindungen einrichte, die letzte verbleibende Partei auf ihren Multipoint-VCs identifizieren und die entsprechende NdisPartyHandle- an NdisClCloseCallübergeben.
Nachdem der Client eine NdisPartyHandle- mit NdisClCloseCall-veröffentlicht hat, kann er die Ressourcen für den zustandsbasierten Zustand freigeben (oder erneut initialisieren). Der Client kann die ressourcen pro VC jedoch nicht auf ähnliche Weise freigeben oder wiederverwenden, wenn er mit NdisClCloseCall initiiert wurde, da die NdisVcHandle, die nicht wiederverwendet werden kann, um einen anderen Aufruf auszuführen, da sie als Schließen gekennzeichnet ist, noch gültig ist, bis die VC zerstört wird. Entweder muss der Client NdisCoDeleteVc- aufrufen, wenn er den VC für einen ausgehenden Aufruf erstellt hat, bevor er loslässt oder seine pro VC-Ressourcen neu initialisiert, oder der Client muss die Veröffentlichung oder Erneutitialisierung dieser Ressourcen zurückstellen, bis seine ProtocolCoDeleteVc--Funktion aufgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte 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 |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_Protocol_Driver_Function(ndis) |