Odstranění VC

Odstranění tohoto virtuálního okruhu může zahájit pouze klient orientovaný na připojení, správce volání nebo ovladač MCM, který inicioval jeho vytvoření. Klient proto odstraní virtuální počítač, který předtím vytvořil pro odchozí hovor, správce hovorů nebo ovladač MCM odstraní virtuální počítač, který předtím vytvořil pro příchozí hovor přes síť, a správce volání odstraní virtuální počítač, který předtím vytvořil pro výměnu zpráv přes síť. (Ovladač MCM nevolá rozhraní NDIS, aby odstranil virtuální počítač, který vytvořil pro výměnu signalizačních zpráv. Ovladač MCM odstraní takový virtuální počítač s interní operací, která je neprůzná pro rozhraní NDIS.)

Klient nebo správce volání orientovaný na připojení zahájí odstranění VC pomocí NdisCoDeleteVc.

Následující obrázek znázorňuje klienta správce hovorů, který zahajuje odstranění videokonference.

Diagram znázorňující klienta správce volání, který iniciuje odstranění videokonference

Následující obrázek znázorňuje klienta ovladače MCM, který spouští odstranění VC.

Diagram znázorňující klienta ovladače MCM, který iniciuje odstranění VC.

Následující obrázek znázorňuje správce hovorů, který zahajuje odstranění virtuálního kanálu.

Diagram znázorňující správce hovorů, který iniciuje odstranění videokonference.

Když klient nebo správce volání volá NdisCoDeleteVc nebo když ovladač MCM volá NdisMCmDeleteVc, nesmí na daném VC být žádná nevyřízená volání a toto VC už musí být deaktivováno. Splnění těchto požadavků znamená, že jsou splněny následující podmínky:

Volání ze strany klienta nebo správce volání NdisCoDeleteVc způsobí, že NDIS zavolá jak funkci MiniportCoDeleteVc základního miniportového ovladače, tak funkci ProtocolCoDeleteVc klienta nebo správce volání, se kterým volající sdílí NdisVcHandle (viz tři předchozí obrázky).

MiniportCoDeleteVc uvolní všechny prostředky přidělené pro VC a také kontext ovladače miniportu pro VC. ProtocolCoDeleteVc uvolní všechny prostředky, které klient nebo správce volání použil k provádění operací a sledování stavu pro VC. MiniportCoDeleteVc i ProtocolCoDeleteVc jsou synchronní funkce, které nemůžou vrátit NDIS_STATUS_PENDING.

Ovladač MCM zahájí odstranění VC s NdisMCmDeleteVc (viz následující obrázek).

Diagram znázorňující ovladač MCM, který iniciuje odstranění VC.

Volání ovladače MCM na NdisMCmDeleteVc způsobí, že NDIS zavolá funkci ProtocolCoDeleteVc klienta, se kterou ovladač MCM sdílel NdisVcHandle .

Když NdisCoDeleteVc nebo NdisMCmDeleteVc vrátí ovládací prvek, NdisVcHandle už není platný.