Dela via


Aktivera en VC

När en virtuell anslutning (VC) har skapats (se Skapa en VC-) måste den aktiveras innan data kan överföras eller tas emot på den. En samtalshanterare initierar aktiveringen av en VC genom att anropa NdisCmActivateVc(se följande bild).

diagram som illustrerar en samtalshanterare som initierar VC-aktivering.

En MCM-drivrutin initierar aktiveringen av en VC genom att anropa NdisMCmActivateVc(se följande bild).

Diagram som illustrerar en MCM-drivrutin som initierar VC-aktivering.

En samtalshanterare eller MCM-drivrutin kan initiera återaktivering av en aktiv VC om den lokala klienten eller en fjärransluten part förhandlar om en ändring av anropsparametrarna på den VC:en (se Client-Initiated Begäran om att stänga ett samtal och inkommande begäran om att ändra samtalsparametrar). Samtalshanteraren eller MCM-drivrutinen kan anropa Ndis(M)CmActivateVc många gånger för en enskild VC för att ändra anropsparametrarna för ett redan aktivt anrop.

För ett klientinitierat utgående samtal anropar en samtalshanterare eller en MCM-drivrutin vanligtvis Ndis(M)CmActivateVc omedelbart efter paketutbytet som bekräftar ett förhandlat avtal angående fjärrmålet för samtalet eller lyckad samtaletablering vid växeln. Samtalshanteraren eller MCM-drivrutinen anropar Ndis(M)CmActivateVc innan den meddelar NDIS (och klienten) om att utgående samtal har slutförts med Ndis(M)CmMakeCallComplete(se Ringa ett samtal). För ett inkommande samtal anropar en samtalshanterare eller MCM-drivrutin vanligtvis Ndis(M)CmActivateVc efter att den har anropat NdisCo(MCm)CreateVc korrekt och innan den anropar Ndis(M)CmDispatchIncomingCall(se Som anger ett inkommande samtal).

Ett samtalshanterares anrop till NdisCmActivateVc gör att NDIS anropar funktionen MiniportCoActivateVc för den underliggande miniportdrivrutinen. MiniportCoActivateVc måste verifiera anropsparametrarna för den här VC:en för att verifiera att adaptern kan stödja det begärda anropet. Om anropsparametrarna är godtagbara kommunicerar MiniportCoActivateVc med adaptern vid behov för att förbereda den för att ta emot eller överföra data via den virtuella anslutningen (till exempel programmering av mottagningsbuffertar). Om de begärda anropsparametrarna inte kan stödjas misslyckas miniportdrivrutinen med begäran.

MiniportCoActivateVc kan slutföras synkront eller asynkront. Anropet till NdisMCoActivateVcComplete gör att NDIS anropar samtalshanterarens funktion ProtocolCmActivateVcComplete. ProtocolCmActivateVcComplete måste kontrollera statusen som returneras av NdisMCoActivateVcComplete för att säkerställa att den virtuella anslutningen har aktiverats. Om miniportdrivrutinen inte aktiverade VC:en får inte anropshanteraren försöka kommunicera via VC. ProtocolCmActivateVcComplete måste också slutföra den bearbetning som krävs av nätverksmediet för att säkerställa att den virtuella anslutningen är redo för dataöverföring innan kontrollen returneras till NDIS.

Ett MCM-drivrutinsanrop till NdisMCmActivateVc informerar NDIS om att den har konfigurerat anrops- och medieparametrar på en nyligen skapad VC eller ändrat anropsparametrarna på en etablerad VC. Den här åtgärden meddelar NDIS att MCM-drivrutinen har gjort ett nätverkskort (NIC) redo för överföringar på den virtuella kretsen (VC). NDIS slutför aktiveringssekvensen genom att anropa MCM-drivrutinens ProtocolCmActivateVcComplete- funktion.

En MCM-drivrutin anropar NdisMCmActivateVc för att aktivera endast virtuella datorer som används för att överföra och/eller ta emot klientdata, men inte för att aktivera virtuella datorer som används för att utbyta signalmeddelanden mellan MCM-drivrutinen och nätverkskomponenter som en växel. En MCM-drivrutin aktiverar en signalerande VC internt utan att anropa någon NdisXxx funktion. Alla VC som en MCM-drivrutin konfigurerar för sina egna signaländamål är därför ogenomskinliga för NDIS.