Функция NdisCmAddPartyComplete (ndis.h)
NdisCmAddPartyComplete возвращает окончательное состояние запроса клиента, для которого диспетчер вызовов ранее вернулся NDIS_STATUS_PENDING, чтобы добавить сторону в установленный многоточечный VC.
Синтаксис
void NdisCmAddPartyComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisPartyHandle,
[in, optional] NDIS_HANDLE CallMgrPartyContext,
[in] PCO_CALL_PARAMETERS CallParameters
);
Параметры
[in] Status
Указывает окончательное состояние операции надстроек диспетчера вызовов, NDIS_STATUS_SUCCESS или любой NDIS_STATUS_XXX, за исключением NDIS_STATUS_PENDING.
[in] NdisPartyHandle
Указывает дескриптор, определяющий сторону. Этот дескриптор был входным для функции ProtocolCmAddParty диспетчера вызовов.
[in, optional] CallMgrPartyContext
Указывает дескриптор для выделенной вызывающей стороной области контекста, в которой диспетчер вызовов будет хранить сведения о состоянии конкретной стороны, если операция надстройки выполнена успешно. В противном случае этот параметр может иметь значение NULL , так как он игнорируется.
[in] CallParameters
Указатель на структуру типа CO_CALL_PARAMETERS , содержащую параметры вызова, изначально предоставленные клиентом, для добавляемой стороны.
Возвращаемое значение
None
Remarks
Если функция ProtocolCmAddParty автономного диспетчера вызовов возвращает NDIS_STATUS_PENDING, cm впоследствии должна вызвать NdisCmAddPartyComplete , чтобы уведомить клиента и NDIS о том, что попытка добавить сторону в многоточенном VC завершена, будь то успешно или с ошибкой.
Если клиент передал параметры трафика в CallParameters , которые не совпадают с параметрами, которые уже установлены для многоточечных VC, конструктор диспетчера вызовов должен определить, как обрабатывать это условие с учетом любых ограничений, накладываемых сетевой средой. Возможно следующее:
- Настройте параметры трафика для отдельных сторон, если базовый сетевой носитель поддерживает эту функцию на многоточечных виртуальных машинах.
- Сбросьте параметры трафика, предоставленные клиентом, до параметров, установленных для VC, когда исходный исходящий вызов был выполнен до вызова NdisCmAddPartyComplete с NDIS_STATUS_SUCCESS в качестве состояния .
- Измените параметры трафика для VC и для каждой стороны, подключенной в данный момент к нему, на значения, предоставленные клиентом, прежде чем CM вызовет NdisCmAddPartyComplete с NDIS_STATUS_SUCCESS в качестве состояния .
- Сбой попытки клиента добавить сторону. (Эта альтернатива неявно заставляет клиентов настраивать параметры трафика для многоточечных VC с помощью NdisClMakeCall и указывать одни и те же параметры трафика при каждом последующем вызове NdisClAddParty для заданного многоточечных VC.)
Если cm задает для параметра Состояние значение NDIS_STATUS_SUCCESS, он должен предоставить явный дескриптор, который обычно является указателем на область, выделенную CM для отдельных сторон, как CallMgrPartyContext при вызове NdisCmAddPartyComplete.
Вызов NdisCmAddPartyComplete вызывает NDIS для вызова клиента Функция ProtocolClAddPartyComplete .
Вызывать NdisCmAddPartyComplete могут только автономные диспетчеры вызовов, которые регистрируют себя с помощью NDIS в качестве драйверов протокола. Драйверы мини-портов, ориентированные на подключение, которые обеспечивают встроенную поддержку управления вызовами, вызывают вместо этого NdisMCmAddPartyComplete .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisCmAddPartyComplete (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisCmAddPartyComplete (NDIS 5.1)) в Windows XP. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_CallManager_Function(ndis) |