Поделиться через


Создание венчурного капитала

Перед выполнением исходящего вызова клиент, ориентированный на подключение, инициирует создание виртуального подключения (VC). Перед указанием входящего вызова к клиенту, ориентированному на подключение, диспетчер вызовов или драйвер MCM инициирует создание VC. После настройки и активации VC данные клиента можно передавать или получать в VC.

Диспетчер вызовов или драйвер MCM также может инициировать создание VC, в котором обмениваются сигнальными сообщениями с сетевыми компонентами, такими как сетевой коммутатор.

Client-Initiated Создание венчурного капитала

Перед вызовом с NdisClMakeCall, клиент вызывает NdisCoCreateVc для запуска создания VC.

На следующем рисунке показан клиент диспетчера вызовов, инициирующий создание виртуальной конференции (VC).

схема, показывающая клиента диспетчера вызовов, инициирующего создание VC.

На следующем рисунке показан клиент драйвера MCM, инициирующий процесс создания VC.

Схема, показывающая клиента драйвера MCM, инициирующего создание VC.

Когда клиент, ориентированный на подключение диспетчера вызовов, вызывает NdisCoCreateVc, NDIS, в качестве синхронной операции, вызывает функцию ProtocolCoCreateVc диспетчера вызовов, а также функцию MiniportCoCreateVc базового драйвера минипорта (см. первый рисунок в этом разделе). NDIS передаёт NdisVcHandle, который представляет VC, как для ProtocolCoCreateVc, так и для MiniportCoCreateVc. Если вызов NdisCoCreateVc выполнен успешно, NDIS возвращает NdisVcHandle для NdisCoCreateVc.

ProtocolCoCreateVc выделяет и инициализирует все динамические ресурсы и структуры, необходимые диспетчеру вызовов для выполнения последующих операций с VC, которые будут активированы. MiniportCoCreateVc выделяет и инициализирует все ресурсы, необходимые драйверу минипорта для поддержания сведений о состоянии VC. Как ProtocolCoCreateVc, так и MiniportCoCreateVc хранят NdisVcHandle.

При использовании клиентом драйвера MCM с ориентированным на соединение протоколом, вызов функции NdisCoCreateVc приводит к вызову NDIS функции ProtocolCoCreateVc драйвера MCM (см. Client-Initiated Создание VC (при наличии драйвера MCM)). В этом случае ProtocolCoCreateVc выполняет необходимое выделение и инициализацию ресурсов для VC. Нет вызова (внутреннего или иного) для MiniportCoCreateVc, потому что драйвер MCM не предоставляет такой функции.

Вызов Manager-Initiated создания видеоконференции

Перед сообщением о поступлении вызова клиенту, ориентированному на соединение, с NdisCmDispatchIncomingCallдиспетчер вызовов вызывает NdisCoCreateVc, чтобы инициировать создание VC (см. следующий рисунок).

схема, показывающая диспетчер вызовов, инициирующий создание виртуальной конференции.

Когда диспетчер вызовов вызывает NdisCoCreateVc, NDIS в рамках синхронной операции вызывает функцию ProtocolCoCreateVc клиентa, который зарегистрировал SAP, на котором принимается вызов, а также функцию MiniportCoCreateVc базового минипорта. NDIS передает NdisVcHandle, который представляет VC для ProtocolCoCreateVc и MiniportCoCreateVc. Если вызов NdisCoCreateVc выполнен успешно, NDIS возвращает NdisVcHandle к NdisCoCreateVc.

MCM Driver-Initiated создание венчурного капитала

Перед , указывающим на входящий вызов к клиенту, ориентированному на подключение, с NdisMCmDispatchIncomingCall, драйвер MCM вызывает NdisMCmCreateVc, чтобы инициировать создание канала VC (см. на следующем рисунке).

схема, показывающая драйвер MCM, инициирующий создание VC.

Когда драйвер MCM вызывает NdisMCmCreateVc, NDIS выполняет вызовы, как синхронную операцию, до возврата из NdisMCmCreateVc в функцию ProtocolCoCreateVc клиента, ориентированного на подключение, который зарегистрировал SAP, на которой принимается вызов. NDIS передает NdisVcHandle, представляющий VC, в функцию ProtocolCoCreateVc. Если вызов NdisMCmCreateVc выполнен успешно, NDIS возвращает NdisVcHandle в NdisMCmCreateVc.

ProtocolCoCreateVc выделяет и инициализирует все динамические ресурсы и структуры, необходимые клиенту для выполнения последующих операций в VC. ProtocolCoCreateVc также сохраняет NdisVcHandle.

Обратите внимание, что когда драйвер MCM создаёт VC для обмена сигнальными сообщениями с сетевым компонентом, он не использует вызовы NdisXxx для создания VC. На самом деле драйвер MCM не использует Ndisxxx вызовы для создания, активации, деактивации или удаления таких виртуальных машин. Вместо этого драйвер MCM выполняет эти операции внутренне. Таким образом, такие венчурные капиталы непрозрачны для NDIS.