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

NdisClMakeCall настраивает исходящий вызов в созданном клиентом VC.

Синтаксис

NDIS_STATUS NdisClMakeCall(
  [in]            NDIS_HANDLE         NdisVcHandle,
  [in, out]       PCO_CALL_PARAMETERS CallParameters,
  [in, optional]  NDIS_HANDLE         ProtocolPartyContext,
  [out, optional] PNDIS_HANDLE        NdisPartyHandle
);

Параметры

[in] NdisVcHandle

Указывает дескриптор, возвращенный предыдущим вызовом NdisCoCreateVc.

[in, out] CallParameters

Указатель на структуру типа CO_CALL_PARAMETERS , в которой вызывающий объект указал атрибуты для этого подключения, например адрес целевого объекта для вызова, задержки, пропускной способности и качества обслуживания, если сетевой носитель и семейство адресов, поддерживаемые диспетчером вызовов, разрешает спецификации качества обслуживания.

[in, optional] ProtocolPartyContext

При необходимости указывает дескриптор, предоставленный вызывающим абонентом, в область контекста резидента, в которой клиент будет поддерживать состояние для каждой стороны для исходной стороны в VC с несколькими точками. Этот параметр имеет значение NULL , если данный VC не представляет многоточечных подключений. Для многоточечных VC NDIS передает этот дескриптор обратно в функции ProtocolClXxx клиента во всех последующих вызовах, влияющих на эту конкретную сторону.

[out, optional] NdisPartyHandle

Указатель на переменную, предоставленную вызывающим объектом, обычно в области контекста, выделенной вызывающей стороной, в которой NDIS возвращает дескриптор, представляющий начальную сторону многоточечным соединением, если запрос на настройку исходящего вызова выполнен успешно. Если ProtocolPartyContext имеет значение NULL, эта переменная, как правило, в контекстной области VC клиента, также имеет значение NULL при завершении установки исходящего вызова.

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

Когда NdisClMakeCall возвращает что-либо, отличное от NDIS_STATUS_PENDING, клиент должен выполнить внутренний вызов к егоФункция ProtocolClMakeCallComplete. В противном случае NDIS вызывает функцию ProtocolClMakeCallComplete клиента после завершения этой операции.

Примечания

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

Вызов NdisClMakeCall приводит к тому, что NDIS перенаправит этот запрос в функцию ProtocolCmMakeCall диспетчера вызовов, с которой клиент разделяет заданный NdisVcHandle. CM отвечает за проверку заданных данных в CallParameters . Он может изменять предоставленные клиентом данные при согласовании с соответствующими сетевыми компонентами и может возвращать различные параметры трафика, отличные от первоначально предоставленных клиенту NdisClMakeCall. КлиентФункция ProtocolClMakeCallComplete отвечает за принятие измененных параметров вызова, если это происходит или для удаления вызова, если предлагаемые параметры вызова CM неприемлемы.

Следовательно, данные в CallParameters должны оставаться доступными диспетчеру вызовов по крайней мере на время настройки звонка. Клиент не может освободить этот буфер, когда NdisClMakeCall возвращает NDIS_STATUS_PENDING. Он должен откладывать освобождение выделенного клиентом ресурса до вызова функции ProtocolClMakeCallComplete .

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

Функция ProtocolClMakeCallComplete клиента должна проверить состояние ввода для NDIS_STATUS_SUCCESS, прежде чем использовать любой возвращенный дескриптор в NdisPartyHandle . Если диспетчер вызовов завершается сбоем запроса на настройку вызова в многоточечных подключениях, значение этой переменной, предоставленной клиентом, является недопустимым.

Требования

   
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. NdisClMakeCall (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisClMakeCall (NDIS 5.1)) в Windows XP.
Целевая платформа Рабочий стол
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_Protocol_Driver_Function(ndis)

См. также

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClAddParty

NdisCloseCall

NdisClModifyCallQoS

NdisCmActivateVc

NdisCmMakeCallComplete

NdisCoCreateVc

ProtocolClMakeCallComplete

ProtocolCmMakeCall