Функция NdisClAddParty (ndis.h)
NdisClAddParty добавляет сторону в многоточечный VC клиента.
Синтаксис
NDIS_STATUS NdisClAddParty(
[in] NDIS_HANDLE NdisVcHandle,
[in] NDIS_HANDLE ProtocolPartyContext,
[in, out] PCO_CALL_PARAMETERS CallParameters,
[out] PNDIS_HANDLE NdisPartyHandle
);
Параметры
[in] NdisVcHandle
Указатель на дескриптор VC, возвращаемый NdisCoCreateVc.
[in] ProtocolPartyContext
Указывает дескриптор выделенной абонентом области контекста резидента, в которой клиент будет поддерживать состояние на стороне, если его вызов завершается успешно.
[in, out] CallParameters
Указатель на структуру типа CO_CALL_PARAMETERS, в которой вызывающий объект указал сведения об адресации для стороннего объекта, добавляемого в его многоточечный VC.
[out] NdisPartyHandle
Указатель на переменную, заданную NDIS, если операция надстройки успешно выполнена.
Возвращаемое значение
Когда NdisClAddParty возвращает все, кроме NDIS_STATUS_PENDING, клиент должен вызвать его внутренний вызов. функция ProtocolClAddPartyComplete. В противном случае NDIS вызывает функцию ProtocolClAddPartyComplete клиента при завершении этой операции.
Замечания
Прежде чем вызывать NdisClAddParty, клиент должен настроить многоточие подключения к VC с NdisClMakeCall, а также распределить и инициализировать область контекста для добавляемой стороны. Клиенты обычно передают указатель на такую область контекста, как ProtocolPartyContext и указатель на переменную в этой области контекста в качестве параметров NdisPartyHandle при вызове NdisClAddParty.
Вызов NdisClAddParty заставляет NDIS перенаправить этот запрос в функцию ProtocolCmAddParty диспетчера вызовов, с которой клиент использует указанный NdisVcHandle. Диспетчер вызовов возвращает состояние ошибки немедленно или, как правило, NDIS_STATUS_PENDING, если он пытается удовлетворить этот запрос. Если попытка отклоняется на удаленной конечной точке или в базовом драйвере минипорта, диспетчер вызовов возвращает окончательное состояние ошибки, например NDIS_STATUS_FAILURE, при вызове NdisCmAddPartyComplete или NdisMCmAddPartyComplete. Клиент функция ProtocolClAddPartyComplete должна проверить аргумент состояния входных NDIS_STATUS_SUCCESS, прежде чем продолжить.
Базовая сетевая среда определяет, может ли клиент указывать параметры трафика на стороне в многоточечных сетевых системах.
Если базовая сетевая среда не поддерживает параметры трафика для отдельных сторон на виртуальных машинах с несколькими точками, диспетчер вызовов может выполнять одно из следующих действий, когда клиент пытается добавить сторону со спецификацией на CallParameters, которая не соответствует уже установленным параметрам трафика для этого VC:
- Отклоните запрос на добавление новой стороны.
- Сбросьте параметры трафика, которые уже установлены для многоточечных VC, когда она успешно добавляет сторону в этот VC.
- Измените параметры трафика для каждой стороны, уже размещенной в VC, когда она успешно добавляет новую сторону.
В свою очередь, NDIS передает предоставленный клиентом ProtocolPartyContext дескриптор в последующих вызовах протокола ProtocolClXxx функций, которые касаются этой вновь добавленной стороны, включая вызов к ProtocolClAddPartyComplete.
Разрешает ли многоточечный вызов передачи в обоих направлениях и /или на стороне передачу с параметрами трафика на стороне, зависит от среды базового минипорт-драйвера, к которому привязан клиент. NdisPartyHandle представляет только определенную сторону, добавленную успешным вызовом NdisClAddParty, а не многоточием VC. Следовательно, клиент может использовать свою область ProtocolPartyContext только для последующих запросов на управление вызовами, зависящими от сторон. Для передачи данных через сетевые носители, которые не поддерживают передачу на стороне или параметры трафика, клиент должен использовать NdisVcHandle.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. NdisClAddParty (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisClAddParty (NDIS 5.1)) в Windows XP. |
целевая платформа | Настольный |
заголовка | ndis.h (include Ndis.h) |
библиотеки | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | Irql_Protocol_Driver_Function(ndis) |