Client-Initiated begäran om att ändra anropsparametrar
En klient begär en ändring av tjänstens kvalitet (QoS) på en aktiv virtuell anslutning (VC) med NdisClModifyCallQoS.
Följande bild visar klienten för en samtalshanterare som begär en ändring av tjänstens kvalitet.
Följande bild visar klienten för en MCM-drivrutin som begär en ändring av tjänstens kvalitet.
I anropet till NdisClModifyCallQoStillhandahåller klienten:
En NdisVcHandle- parameter som identifierar VC.
En pekare till en CO_CALL_PARAMETERS struktur som innehåller de anropsparametrar som klienten begär.
De omständigheter under vilka en klient kan begära en ändring i QoS bestäms av signalprotokollet.
Anropet till NdisClModifyCallQoS får NDIS att anropa både samtalshanterarens eller MCM-drivrutinens funktion ProtocolCmModifyCallQoS, vilken tar emot NdisVcHandle och den buffrade CO_CALL_PARAMETERS-strukturen som klienten vidarebefordrar till NdisClModifyCallQoS. ProtocolCmModifyQoS- kommunicerar med nätverkskontrollenheter eller andra mediespecifika agenter, vilket krävs av dess media, för att ändra de mediespecifika anropsparametrarna för en etablerad virtuell anslutning.
När du har kommunicerat med nätverket och fastställt att ändringarna lyckades måste en samtalshanterare anropa NdisCmActivateVc(och en MCM-drivrutin måste anropa NdisMCmActivateVc) för att aktivera den angivna VC:n med de nya anropsparametrarna.
Om nätverket inte accepterar de nya anropsparametrarna eller om den underliggande miniportdrivrutinen inte kan acceptera parametrarna måste anropshanteraren eller MCM-drivrutinen återställa VC till det tillstånd som fanns innan några ändringar gjordes och returnera NDIS_STATUS_FAILURE.
För att ange status för klientens begäran om att ändra QoS anropar en samtalshanterare NdisCmModifyCallQoSCompleteoch en MCM-drivrutin anropar NdisMCmModifyCallQoSComplete. Vid det här samtalet skickas samtalshanteraren eller MCM-drivrutinen vidare:
En NDIS_STATUS som anger status för begäran.
En NdisVcHandle som identifierar VC.
En pekare till en CO_CALL_PARAMETERS struktur som innehåller anropsparametrarna för VC.
Om det tillåts av signalprotokollet kan anropshanteraren eller MCM-drivrutinen skicka tillbaka ändrade anropsparametrar till klienten. Dessa ändringar kan vara resultatet av förhandlingar med nätverket eller så kan de tillhandahållas av anropshanteraren eller SJÄLVA MCM-drivrutinen. En anropshanterare eller MCM-drivrutin bör ange att anropsparametrarna har ändrats genom att ange flaggan CALL_PARAMETERS_CHANGED i CO_CALL_PARAMETERS struktur.
Anropet till Ndis(M)CmModifyCallQoSComplete gör att NDIS anropar klientens ProtocolClModifyCallQoSComplete funktion. NDIS skickar följande till ProtocolClModifyCallQoSComplete:
En NDIS_STATUS som anger status för klientens begäran om att ändra QoS.
Ett ProtocolVcContext- handtag som identifierar VC:n.
En pekare till en CO_CALL_PARAMETERS-struktur som innehåller de anropsparametrar som skickas av en anropshanterare eller MCM-drivrutin till Ndis(M)CmModifyCallQoSComplete.
Om flaggan CALL_PARAMETERS_CHANGED anges i CO_CALL_PARAMETERS-strukturen måste klienten undersöka de returnerade anropsparametrarna och avgöra om ändringarna är acceptabla. Om klientens anrop till NdisClModifyCallQoS lyckas kan ProtocolClModifyCallQoSComplete acceptera QoS-ändringen genom att helt enkelt returnera kontrollen. Annars kan ProtocolClModifyCallQoSComplete delta i ytterligare förhandlingar med samtalshanteraren om det tillåts av signalprotokollet och så länge klientens utvecklare sätter en rimlig gräns för antalet möjliga omförhandlingar. Alternativt kan ProtocolClModifyCallQoSComplete helt enkelt avbryta samtalet med NdisClCloseCall(se Client-Initiated Begäran om att stänga ett samtal) när samtalshanteraren avvisar en begäran om att ändra QoS och den tidigare etablerade QoS har blivit oacceptabel för klienten.