Функция 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 в качестве состояния, диспетчер вызовов должен считать NdisVcHandle (и NdisPartyHandle, если таковые есть) непригодными для передачи по сети, как только он вызывает 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) |