Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující obrázek znázorňuje klienta, který provádí odchozí hovor prostřednictvím správce hovorů.
Následující obrázek znázorňuje klienta, který provádí odchozí volání prostřednictvím ovladače MCM.
Před odchozím voláním musí klient orientovaný na připojení:
Inicializace parametrů volání ve struktuře typu CO_CALL_PARAMETERS. Ovladač správce volání nebo ovladač MCM obvykle používá parametry volání, které klient určuje k nastavení volání a k odvození parametrů média pro použití ovladačem miniportu.
Zahajte vytvoření VC pomocí NdisCoCreateVc.
Při úspěšném návratu NdisCoCreateVc klient volá NdisClMakeCall , aby zahájil volání (viz dva obrázky v této části).
Ve svém volání NdisClMakeCall klient předá ukazatel na strukturu CO_CALL_PARAMETERS inicializovanou dříve. Klient také předává NdisVcHandle (vrácený NdisCoCreateVc), který identifikuje VC, na kterém bude klient přenášet a případně přijímat data související s hovorem. Pokud klient provádí vícebodové volání (volání více než jedné vzdálené strany), předává také protokol ProtocolPartyContext , který určuje popisovač do místní kontextové oblasti přidělené klientovi, ve které bude klient udržovat stav jednotlivých stran pro počáteční stranu na vícepointovém virtuálním počítači.
Volání metody NdisClMakeCall způsobí, že NDIS přepošle tuto žádost na funkci ProtocolCmMakeCall správce volání nebo ovladače MCM, se kterým klient sdílí konkrétní NdisVcHandle. ProtocolCmMakeCall musí ověřit vstupní parametry volání, které byly nastaveny klientem.
ProtocolCmMakeCall komunikuje (vyměňuje signalizační zprávy) se síťovými řídicími zařízeními za účelem vytvoření připojení. Správce volání volá NdisCoSendNetBufferLists k zahájení takové výměny (viz Odesílání struktur NET_BUFFER z ovladačů CoNDIS). Ovladač MCM nikdy nevolá NdisCoSendNetBufferLists. Místo toho přenáší data přímo přes síť.
Správce volání nebo ovladač MCM může upravit parametry volání zadané klientem při vyjednávání s relevantními síťovými komponentami a může vracet různé parametry provozu, než klient původně poskytl NdisClMakeCall (viz příchozí požadavek na změnu parametrů volání).
Explicitní NdisPartyHandle předaný ProtocolCmMakeCall naznačuje, že VC vytvořené klientem bude použito pro vícebodové volání. Manažer volání nebo ovladač MCM musí přidělit a inicializovat všechny potřebné prostředky potřebné k údržbě informací o státu jednotlivých stran a řídit vícebodové volání.
Jakmile správce volání provede veškerou potřebnou komunikaci se síťovým hardwarem, jak to vyžaduje jeho médium, musí zavolat NdisCmActivateVc , aby zahájil aktivaci VC , na kterém se budou odesílat a možná přijímat data volání. Ovladač MCM musí volat NdisMCmActivateVc.
Když je základní ovladač miniportu připravený k přenosu dat na VC (tj. po aktivaci VC), volá správce volání NdisCmMakeCallComplete a ovladač MCM volá NdisMCmMakeCallComplete. V tomto okamžiku by měl manažer volání nebo ovladač MCM vyjednat se sítí, aby vytvořil parametry volání pro VC a základní ovladač miniportu by měl dokončit aktivaci VC.
Ve volání Ndis(M)CmMakeCallComplete, správce volání nebo ovladač MCM předá parametry volání pro VC jako ukazatel na strukturu typu CO_CALL_PARAMETERS. Pokud správce volání upravil parametry volání, jak původně určil klient, může klienta upozornit nastavením příznaku CALL_PARAMETERS_CHANGED ve struktuře CO_CALL_PARAMETERS.
Volání Ndis(M)CmMakeCallComplete způsobí, že NDIS zavolá funkci ProtocolClMakeCallComplete klienta, která pochází z odchozího volání. Volání ProtocolClMakeCallComplete označuje, že správce volání dokončil zpracování požadavku klienta na navázání virtuálního připojení s NdisClMakeCall.
Pokud byl pokus klienta o navázání odchozího volání úspěšný, měl by protokol ProtocolClMakeCallComplete zkontrolovat příznak CALL_PARAMETERS_CHANGED určit, zda byly parametry volání původně zadané klientem změněny. Pokud je příznak nastaven, označující, že parametry volání byly změněny, ProtocolClMakeCallComplete by měl prozkoumat vrácené parametry volání a určit, zda jsou přijatelné pro toto připojení.
Pokud jsou parametry volání přijatelné, ProtocolClMakeCallComplete jednoduše vrátí ovládací prvek. Pokud parametry volání nejsou přijatelné a pokud signalizační protokol v tomto okamžiku umožňuje nové vyjednávání, může klient Volat NdisClModifyCallQoS k vyžádání změny v parametrech volání (viz Client-Initiated Požadavek na zavření volání). Pokud signalizační protokol neumožňuje opakované vyjednávání nepřijatelných parametrů volání, ProtokolClMakeCallComplete musí zrušit volání pomocí NdisCloseCall(viz Client-Initiated Žádost o zavření volání).