Funzione NdisClCloseCall (ndis.h)
NdisClCloseCall richiede l'interruzione di una chiamata nel vc specificato.
NDIS_STATUS NdisClCloseCall(
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in] UINT Size
);
[in] NdisVcHandle
Handle per il vc della chiamata chiusa o disconnessa. Questo handle è stato fornito da NDIS quando il vc è stato originariamente creato con NdisCoCreateVc, indipendentemente dal client in preparazione di effettuare una chiamata in uscita o dal gestore chiamate in preparazione per l'invio di una chiamata in ingresso al client.
[in, optional] NdisPartyHandle
Handle dell'ultima parte da eliminare in un vc multipunto o NULL. Se si tratta di un vc multipoint, il client ha ottenuto questo handle da una chiamata precedente a NdisClMakeCall o NdisClAddParty.
[in, optional] Buffer
Puntatore a un buffer allocato dal chiamante contenente i dati da trasmettere all'entità nel nodo remoto quando la connessione viene chiusa. A seconda del supporto sottostante, questo puntatore può essere NULL.
[in] Size
Specifica le dimensioni, in byte, in Buffer, zero se buffer è NULL.
Quando NdisClCloseCall restituisce qualsiasi valore diverso da NDIS_STATUS_PENDING, il client deve effettuare una chiamata interna al relativo funzione ProtocolClCloseCallComplete. In caso contrario, NDIS chiama la funzione ProtocolClCloseCallComplete del client al termine dell'operazione.
I client in genere chiamano NdisClCloseCall in una delle circostanze seguenti:
- Per chiudere una chiamata stabilita, se la chiamata è stata avviata dal client con NdisClMakeCall o è stata offerta da un peer remoto e accettata dal client funzione ProtocolClIncomingCall.
-
Dall'oggetto
funzione di ProtocolClIncomingCloseCall per rimuovere una chiamata stabilita.
Ciò si verifica quando l'entità remota chiude una chiamata in ingresso avviata originariamente dall'entità remota e che il client ha accettato. Per le chiamate in uscita avviate dal client, ciò si verifica quando l'entità remota chiude la connessione da punto a punto nel nodo remoto o quando l'ultima parte rimanente in un vc multipoint chiude la chiamata sul nodo remoto.
-
Dall'oggetto
ProtocolClMakeCallComplete funzione per eliminare un tentativo avviato dal client di effettuare una chiamata in uscita.
Ciò si verifica se il gestore chiamate ha modificato i parametri di chiamata specificati dal client passati a NdisClMakeCall e il client rileva che queste modifiche non sono accettabili.
-
Dalla funzione di ProtocolClIncomingQoSChange per rimuovere una chiamata stabilita.
Ciò si verifica se una modifica QoS proposta dall'altra parte nel vco non è accettabile per il client.
-
Dall'oggetto
Funzione ProtocolClModifyCallQoSComplete per rimuovere una chiamata stabilita.
Ciò si verifica se una modifica QoS proposta dal client in VC non è accettata e il QoS modificato dal cm restituito a ProtocolClModifyCallQoSComplete non è accettabile per il client.
La chiamata di un client a NdisClCloseCall fa sì che NDIS contrassegni il NdisVcHandle come chiusura e per chiamare la funzione ProtocolCmCloseCall del cm.
Per rimuovere una chiamata stabilita in un vc multipoint creato dal client, il client deve chiamare NdisClDropParty una o più volte per rilasciare tutto ma l'ultima parte nel vc prima di chiamare NdisClCloseCall. Il gestore chiamate non riuscirà a richiedere a qualsiasi client di chiudere una chiamata multipunto se il vc specificato ha ancora più di una parte connessa. Il NdisPartyHandle passato a NdisClCloseCall può essere qualsiasi handle valido ottenuto dal client dalle chiamate precedenti a NdisClAddParty o NdisClMakeCall con il NdisVcHandle specificato .
Come parti remote a una richiesta di chiamata multipoint avviata dal client che le connessioni vengono chiuse, NDIS chiama che il client ProtocolClDropParty funzione purché più di una parte in sospeso esista nel vc multipoint creato dal client. Quando l'ultima parte remota rimanente chiude la connessione, NDIS chiama il client funzione ProtocolClIncomingCloseCall. Di conseguenza, il ProtocolClIncomingCloseCall funzione di qualsiasi client che configura connessioni multipunto deve identificare l'ultima entità rimanente nelle schede virtuali multipoint e passare il appropriato NdisPartyHandle a NdisClCloseCall.
Dopo che il client rilascia un NdisPartyHandle con NdisClCloseCall, può rilasciare (o reinizializzare per il riutilizzo) le risorse per lo stato per ogni parte gestito. Tuttavia, il client non può rilasciare o riutilizzare le risorse per vc in modo analogo al completamento dell'operazione avviata con NdisClCloseCall perché l'NdisVcHandle, che non può essere riutilizzato per effettuare un'altra chiamata perché è contrassegnata come chiusura, è ancora valida finché il vc non viene eliminato definitivamente. Il client deve chiamare NdisCoDeleteVc se ha creato il vc per una chiamata in uscita prima di rilasciare o reinizializzare le risorse per VC oppure il client deve rinviare il rilascio o la reinizializzazione di queste risorse fino a quando non viene chiamata la funzione ProtocolCoDeleteVc.
Requisito | Valore |
---|---|
client minimo supportato | Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisClCloseCall (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisClCloseCall (NDIS 5.1)) in Windows XP. |
piattaforma di destinazione | Desktop |
intestazione | ndis.h (include Ndis.h) |
libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
regole di conformità DDI | Irql_Protocol_Driver_Function (ndis) |