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

NdisMCmDeactivateVc уведомляет NDIS о том, что дальнейшие передачи для определенного активного виртуального экземпляра не будут выполняться.

Синтаксис

NDIS_STATUS NdisMCmDeactivateVc(
  [in] NDIS_HANDLE NdisVcHandle
);

Параметры

[in] NdisVcHandle

Указывает дескриптор, определяющий VC. Этот дескриптор был предоставлен NDIS драйверу MCM либо при вызове NdisMCmCreateVc для входящего вызова, либо при настройке функции ProtocolCoCreateVc для исходящего вызова, инициированного клиентом.

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

NdisMCmDeactivateVc может возвращать одно из следующих элементов:

Код возврата Описание
NDIS_STATUS_SUCCESS
NDIS помечает VC как неактивный.
NDIS_STATUS_NOT_ACCEPTED
VC уже деактивирован, поэтому этот вызов является избыточным.

Комментарии

Драйвер MCM вызывает NdisMCmDeactivateVc в качестве важного шага при закрытии вызова, обычно после обмена пакетами с сетевыми компонентами, что разрывает соединение.

Успешный вызов NdisMCmDeactivateVc позволяет драйверу MCM отменить текущие параметры вызова для передачи в VC, возможно, повторно инициализировать их до значений по умолчанию, определяемых драйвером miniport. Однако если впоследствии VC повторно активируется для другого вызова, клиент предоставит драйверу мини-порта новые параметры вызова.

NdisVcHandle, переданный в NdisMCmDeactivateVc, остается действительным после завершения деактивации VC. Деактивация любого VC позволяет его создателю повторно инициализировать VC для повторного использования или уничтожить его:

  • После деактивации VC и закрытия вызова клиент может повторно использовать VC, который он изначально создал для выполнения другого вызова с помощью NdisClMakeCall, или вызвать NdisCoDeleteVc, тем самым вызывая функцию ProtocolCoDeleteVc драйвера MCM.
  • После деактивации VC и закрытия вызова драйвер MCM может повторно использовать VC, который он изначально создал, чтобы указать другой входящий вызов к тому же клиенту с помощью NdisMCmDispatchIncomingCall или может вызывать NdisMCmDeleteVc.
Модуль записи драйвера определяет, имеет ли драйвер MCM (внутреннюю) функцию MiniportCoDeactivateVc , которую драйвер вызывает в контексте разрыва подключений для исходящих и входящих вызовов.

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

Требования

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

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

MiniportCoDeactivateVc

NdisClCloseCall

NdisClMakeCall

NdisCmDeactivateVc

NdisMCmActivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc