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


Функция NdisCmActivateVc (ndis.h)

NdisCmActivateVc передает параметры вызова CM, включая параметры мультимедиа, для конкретного VC вниз к базовому драйверу минипорта.

Синтаксис

NDIS_STATUS NdisCmActivateVc(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in, out] PCO_CALL_PARAMETERS CallParameters
);

Параметры

[in] NdisVcHandle

Задает дескриптор, определяющий VC, для которого необходимо задать параметры вызова. Диспетчер вызовов либо получил этот дескриптор из NdisCoCreateVc для входящего вызова, либо в качестве входного параметра для его функции ProtocolCoCreateVc для исходящего вызова, инициированного клиентом.

[in, out] CallParameters

Указатель на буфер резидентов, выделенный CM, отформатированный как структура типа CO_CALL_PARAMETERS, содержащий все параметры, зависящие от носителя, используемые базовым драйвером мини-порта для активации VC.

Возвращаемое значение

Когда NdisCmActivateVc возвращает все, кроме NDIS_STATUS_PENDING, диспетчер вызовов должен выполнить внутренний вызов к ней. функция ProtocolCmActivateVcComplete. В противном случае NDIS вызывает функцию protocolCmActivateVcComplete CM при завершении этой операции.

Замечания

NdisCmActivateVc уведомляет базовый драйвер минипорта о настройке параметров вызова и мультимедиа в только что созданном VC или изменении VC. NDIS перенаправляет заданные параметры вызова и дескриптор VC в базовую функцию драйвера минипорта MiniportCoActivateVc, которая настраивает все необходимые ресурсы для отслеживания состояния VC и делает себя и сетевой адаптер готовым для передачи данных в VC.

Автономный CM всегда вызывает NdisCmActivateVc после установления подключения к VC, но до отправки или получения данных в этом VC. На протяжении всего подключения CM может вызывать NdisCmActivateVc много раз с тем же NdisVcHandle в качестве условий изменения сети и (или) всякий раз, когда клиент вызывает NdisClModifyCallQoS. При каждом вызове NdisCmActivateVcбазовый функции минипорта MiniportCoActivateVc должен выполнять одно из следующих действий:

  • Обновите состояние, которое драйвер минипорта сохраняет о параметрах вызова до новых значений, предоставленных диспетчером вызовов, если драйвер минипорта может продолжать передавать данные в VC в соответствии с недавно измененными параметрами вызова.
  • Сбой вызова, если мини-драйвер не может продолжать передавать данные в соответствии с ограничениями заданных параметров вызова.
Если базовый драйвер минипорта завершается ошибкой запроса на задание или сброс параметров вызова, диспетчер вызовов может изменить исходную спецификацию CallParameters и вызвать NdisCmActivateVc. Ограничение на количество повторных попыток активации VC в диспетчере вызовов зависит от реализации.

Для исходящего вызова, инициированного клиентом, автономный CM обычно вызывает NdisCmActivateVc сразу после обмена пакетами, подтверждающий согласование соглашения с удаленным целевым объектом вызова или успешной настройкой вызова на коммутаторе, прежде чем уведомлять NDIS (и клиент) о завершении исходящего вызова с NdisCmMakeCallComplete. Для входящего вызова диспетчер вызовов обычно вызывает NdisCmActivateVc после вызова NdisCoCreateVc и перед вызовом NdisCmDispatchIncomingCall.

В процессе настройки исходящего вызова и в то время как любой VC остается активированным, клиент может запросить изменения параметров вызова для этого VC, например путем вызова NdisClModifyCallQos. После проверки допустимости заданных параметров вызова для любого такого запроса автономный диспетчер вызовов должен вызвать NdisCmActivateVc, чтобы передать измененные параметры вызова в базовый минипорт-драйвер.

Только автономные диспетчеры вызовов, которые регистрируют себя в качестве драйверов протокола NDIS, могут вызывать NdisCmActivateVc. Вместо этого драйверы мини-порта, ориентированные на подключение, которые обеспечивают встроенную поддержку управления вызовами, NdisMCmActivateVc.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. NdisCmActivateVc (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisCmActivateVc (NDIS 5.1)) в Windows XP.
целевая платформа Настольный
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_CallManager_Function(ndis)

См. также

CO_CALL_PARAMETERS

MiniportCoActivateVc

NdisClMakeCall

NdisClModifyCallQos

NdisCmDeactivateVc

NdisCmDispatchIncomingCall

NdisCoCreateVc

NdisMCmActivateVc

ProtocolCmActivateVcComplete

ProtocolCoCreateVc