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

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

Синтаксис

NDIS_STATUS NdisCmDeactivateVc(
  [in] NDIS_HANDLE NdisVcHandle
);

Параметры

[in] NdisVcHandle

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

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

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

Комментарии

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

Вызов NdisCmDeactivateVc приводит к тому, что NDIS вызывает функцию MiniportCoDeactivateVc базового драйвера минипорта , которая может отменить текущие параметры вызова для передачи в VC, возможно, повторно инициализировать их в значения по умолчанию, определяемые драйвером минипорта. Если впоследствии VC повторно активируется для другого вызова, клиент или диспетчер вызовов предоставит новые параметры вызова драйверу мини-порта.

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

  • После деактивации VC и закрытия вызова клиент может повторно использовать VC, который он изначально создал, для выполнения другого вызова с помощью NdisClMakeCall.
  • После деактивации VC и закрытия вызова CM может повторно использовать VC, который она изначально создала, чтобы указать другой входящий вызов того же клиента с помощью NdisCmDispatchIncomingCall.
Создатель конкретного VC, который не будет использоваться повторно, вызывает NdisCoDeleteVc , чтобы уничтожить этот VC.

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

Требования

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

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

MiniportCoDeactivateVc

NdisClCloseCall

NdisClMakeCall

NdisCmActivateVc

NdisCmDispatchIncomingCall

NdisMCmDeactivateVc

ProtocolCmCloseCall

ProtocolCmDeactivateVcComplete