Condividi tramite


Creazione di un vc

Prima di effettuare una chiamata in uscita, un client orientato alla connessione avvia la creazione di una connessione virtuale (VC). Prima di indicare una chiamata in ingresso a un client orientato alla connessione, un gestore chiamate o un driver MCM avvia la creazione di un oggetto VC . Dopo aver configurato e attivato il vc, i dati del client possono essere trasmessi o ricevuti nel vc.

Un gestore chiamate o un driver MCM può anche avviare la creazione di un vc in cui i messaggi di segnalazione vengono scambiati con componenti di rete, ad esempio un commutatore di rete.

Client-Initiated creazione di un vc

Prima di effettuare una chiamata con NdisClMakeCall, un client orientato alla connessione chiama NdisCoCreateVc per avviare la creazione di un vc.

Nella figura seguente viene illustrato un client di un gestore chiamate che avvia la creazione di un vc.

Diagramma che mostra un client di un gestore chiamate che avvia la creazione di un oggetto VC.

Nella figura seguente viene illustrato un client di un driver MCM che avvia la creazione di un vc.

Diagramma che mostra un client di un driver MCM che avvia la creazione di un oggetto VC.

Quando un client orientato alla connessione di un gestore chiamate chiama NdisCoCreateVc, NDIS chiama, come operazione sincrona, la funzione ProtocolCoCreateVc del gestore chiamate e la funzione MiniportCoCreateVc del driver miniport sottostante (vedere la prima figura in questo argomento). NDIS passa un oggetto NdisVcHandle che rappresenta il vc sia a ProtocolCoCreateVc che a MiniportCoCreateVc. Se la chiamata a NdisCoCreateVc ha esito positivo, NDIS restituisce NdisVcHandle a NdisCoCreateVc.

ProtocolCoCreateVc alloca e inizializza tutte le risorse dinamiche e le strutture richieste dal gestore chiamate per eseguire operazioni successive in un vc che verrà attivato. MiniportCoCreateVc alloca e inizializza tutte le risorse richieste dal driver miniport per mantenere le informazioni sullo stato relative al vc. Sia ProtocolCoCreateVc che MiniportCoCreateVc archivia NdisVcHandle .

Quando un client orientato alla connessione di un driver MCM, la chiamata a NdisCoCreateVc fa sì che NDIS chiami la funzione ProtocolCoCreateVc del driver MCM (vedere Client-Initiated Creazione di un dispositivo VC (MCM Driver Present)). In questo caso ProtocolCoCreateVc esegue l'allocazione e l'inizializzazione necessarie delle risorse per il vc. Non è presente alcuna chiamata (interna o diversa) a MiniportCoCreateVc, perché un driver MCM non fornisce tale funzione.

Chiamare Manager-Initiated creazione di un vc

Prima di indicare una chiamata in arrivo a un client orientato alla connessione con NdisCmDispatchIncomingCall, un gestore chiamate NdisCoCreateVc per avviare la creazione di un vc (vedere la figura seguente).

Diagramma che mostra un gestore chiamate che avvia la creazione di un oggetto VC.

Quando un gestore chiamate NdisCoCreateVc, NDIS chiama, come operazione sincrona, la funzione ProtocolCoCreateVc del client orientato alla connessione che ha registrato sap su cui viene ricevuta la chiamata, nonché la funzione MiniportCoCreateVc del miniport sottostante. NDIS passa un oggetto NdisVcHandle che rappresenta il vc sia a ProtocolCoCreateVc che a MiniportCoCreateVc. Se la chiamata a NdisCoCreateVc ha esito positivo, NDIS restituisce NdisVcHandle a NdisCoCreateVc.

MCM Driver-Initiated Creazione di un vc

Prima di indicare una chiamata in arrivo a un client orientato alla connessione con NdisMCmDispatchIncomingCall, un driver MCM chiama NdisMCmCreateVc per avviare la creazione di un vc (vedere la figura seguente).

Diagramma che mostra un driver MCM che avvia la creazione di un vc.

Quando un driver MCM chiama NdisMCmCreateVc, NDIS chiama, come operazione sincrona prima che NdisMCmCreateVc restituisca, la funzione ProtocolCoCreateVc del client orientato alla connessione che ha registrato sap su cui viene ricevuta la chiamata. NDIS passa un oggetto NdisVcHandle che rappresenta il vc a ProtocolCoCreateVc. Se la chiamata a NdisMCmCreateVc ha esito positivo, NDIS restituisce NdisVcHandle a NdisMCmCreateVc.

ProtocolCoCreateVc alloca e inizializza tutte le risorse dinamiche e le strutture richieste dal client per eseguire operazioni successive nel vc. ProtocolCoCreateVc archivia anche NdisVcHandle .

Si noti che quando un driver MCM crea un vc per lo scambio di messaggi di segnalazione con un componente di rete, non usa chiamate NdisXxx per creare un vc. Infatti, un driver MCM non usa chiamate NdisXxx per creare, attivare, disattivare o eliminare tali macchine virtuali. Al contrario, un driver MCM esegue queste operazioni internamente. Tali VC sono quindi opachi a NDIS.