Функция 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

NdisClCloseCall

NdisClModifyCallQoS

NdisCmActivateVc

NdisCmMakeCallComplete

NdisCoCreateVc

ProtocolClMakeCallComplete

ProtocolCmMakeCall