PROTOCOL_CL_INCOMING_CALL funzione di callback (ndis.h)
La funzione ProtocolClIncomingCall viene usata dai client orientati alla connessione che accettano chiamate in ingresso. Tali client devono avere funzioni ProtocolClIncomingCall . In caso contrario, la funzione ProtocolClIncomingCall registrata di un driver di protocollo di questo tipo può semplicemente restituire NDIS_STATUS_NOT_SUPPORTED.
Sintassi
PROTOCOL_CL_INCOMING_CALL ProtocolClIncomingCall;
NDIS_STATUS ProtocolClIncomingCall(
[in] NDIS_HANDLE ProtocolSapContext,
[in] NDIS_HANDLE ProtocolVcContext,
[in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}
Parametri
[in] ProtocolSapContext
Specifica l'handle fornito originariamente dal client al momento della registrazione di SAP, che il gestore chiamate corrisponde all'offerta di chiamata in ingresso.
[in] ProtocolVcContext
Specifica l'handle per l'area di contesto per VC del client, restituita in precedenza a NDIS dalla relativa funzione ProtocolCoCreateVc .
[in, out] CallParameters
Puntatore a un buffer, formattato come struttura CO_CALL_PARAMETERS , che contiene i parametri di chiamata per questa chiamata offerta.
Valore restituito
ProtocolClIncomingCall può restituire uno dei codici di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
Il client ha accettato l'offerta di chiamata in arrivo. |
|
Il client gestisce questa richiesta in modo asincrono e chiamerà Funzione NdisClIncomingCallComplete al termine dell'operazione di chiusura. |
|
Il client ha rifiutato l'offerta di chiamata in arrivo per un motivo determinato dal driver. |
Commenti
Una chiamata a ProtocolClIncomingCall indica che il gestore chiamate ha ricevuto una richiesta in rete da un peer di segnalazione per stabilire una connessione con questo client. In altri termini, la richiesta di configurazione di tale connessione è stata indirizzata a un sap registrato in precedenza con il gestore chiamate da questo client.
A seconda del protocollo di segnalazione supportato dal gestore chiamate, ProtocolClIncomingCall può modificare i parametri del traffico come parte del processo di negoziazione dell'accettazione di un'offerta di chiamata in ingresso e/o, se il gestore chiamate supporta QoS, la qualità della specifica del servizio in CallParameters . Il client deve copiare le informazioni necessarie successivamente da questa struttura memorizzata nel buffer se accetta la chiamata offerta.
Supponendo che il gestore chiamate trovi le modifiche del client, se presenti, accettabili, NDIS chiama la funzione ProtocolClIncomingCallConnected del client quando diventa possibile che i trasferimenti si verifichino nel vc attivo che rappresenta la connessione al client nel nodo remoto che ha originariamente avviato l'offerta di chiamata. Se il client restituisce parametri di chiamata modificati inaccettabili, il gestore chiamate può rimuovere il vc creato per questa offerta, causando così chiamate al client ProtocolClIncomingCloseCall e quindi le funzioni ProtocolCoDeleteVc .
Esempi
Per definire una funzione ProtocolClIncomingCall , è innanzitutto necessario fornire una dichiarazione di funzione che identifica il tipo di funzione che si sta definendo. Windows fornisce un set di tipi di funzione per i driver. La dichiarazione di una funzione con i tipi di funzione consente di eseguire l'analisi del codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica rilevano gli errori ed è un requisito per la scrittura dei driver per il sistema operativo Windows.Ad esempio, per definire una funzione ProtocolClIncomingCall denominata "MyClIncomingCall", usare il tipo PROTOCOL_CL_INCOMING_CALL come illustrato nell'esempio di codice seguente:
PROTOCOL_CL_INCOMING_CALL MyClIncomingCall;
Implementare quindi la funzione come segue:
_Use_decl_annotations_
NDIS_STATUS
MyClIncomingCall(
NDIS_HANDLE ProtocolSapContext,
NDIS_HANDLE ProtocolVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
Il tipo di funzione PROTOCOL_CL_INCOMING_CALL è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori quando si eseguono gli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations assicura che vengano utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_CL_INCOMING_CALL nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione per i driver NDIS.
Per informazioni sulle Use_decl_annotations, vedere Annotazione del comportamento della funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere ProtocolClIncomingCall (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolClIncomingCall (NDIS 5.1)) in Windows XP. |
Piattaforma di destinazione | Windows |
Intestazione | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |