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

NdisCmCloseCallComplete возвращает окончательное состояние запроса клиента, для которого диспетчер вызовов ранее вернул NDIS_STATUS_PENDING, чтобы отменить вызов.

Синтаксис

void NdisCmCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE NdisVcHandle,
  [in, optional] NDIS_HANDLE NdisPartyHandle
);

Параметры

[in] Status

Указывает окончательное состояние запроса клиента на закрытие подключения NDIS_STATUS_SUCCESS или любого определяемого CM NDIS_STATUS_XXX, за исключением NDIS_STATUS_PENDING.

[in] NdisVcHandle

Указывает дескриптор для VC для вызова. Этот дескриптор был предоставлен NDIS при первоначальном создании VC, будь то диспетчером вызовов или клиентом, с помощью NdisCoCreateVc. Совсем недавно диспетчер вызовов получил этот дескриптор из своего состояния per-VC, заданного CallMgrVcContext , переданного в качестве входного параметра в свой. Функция ProtocolCmCloseCall .

[in, optional] NdisPartyHandle

Указывает значение NULL , если NdisVcHandle представляет VC типа "точка — точка" или дескриптор последней оставшейся стороны в многоточичном соединении, которое cm получил из своего состояния для каждого участника, указанного CallMgrPartyContext , переданного в качестве входного параметра в функцию ProtocolCmCloseCall .

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

None

Remarks

Если функция ProtocolCmCloseCall автономного диспетчера вызовов возвращает NDIS_STATUS_PENDING, cm должен впоследствии вызвать NdisCmCloseCallComplete , чтобы уведомить клиента и NDIS о том, что попытка разорвать подключение завершена, будь то успешно или с ошибкой. Вызов NdisCmCloseCallComplete приводит к тому, что NDIS вызывает клиент Функция ProtocolCloseCallComplete .

Если он передает NDIS_STATUS_SUCCESS в качестве состояния, диспетчер вызовов должен считать NdisVcHandleNdisPartyHandle, если таковые есть) непригодными для передачи по сети, как только он вызывает NdisCmCloseCallComplete. Если диспетчер вызовов изначально создал VC, он должен вызвать NdisCoDeleteVc с тем же NdisVcHandle , который он только что передал в NdisCmCloseCallComplete. Если клиент создал этот VC, диспетчер вызовов может ожидать вызова своей функции ProtocolCoDeleteVc с
ProtocolVcContext, где имеет тот же NdisVcHandle в качестве входного параметра.

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

Требования

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

См. также раздел

NdisClCloseCall

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolCloseCallComplete

ProtocolCoDeleteVc