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

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

Синтаксис

NDIS_STATUS NdisCmDeactivateVc(
  [in] NDIS_HANDLE NdisVcHandle
);

Параметры

[in] NdisVcHandle

Указывает дескриптор, определяющий VC. Этот дескриптор был передан NDIS диспетчеру вызовов либо при вызове NdisCoCreateVc для входящего вызова, либо при настройке функции 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.

Только автономные диспетчеры вызовов, которые регистрируются в качестве драйверов протокола NDIS, могут вызывать NdisCmDeactivateVc. Вместо этого драйверы мини-порта, ориентированные на подключение, которые обеспечивают встроенную поддержку управления вызовами 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

NdisCloseCall

NdisClMakeCall

NdisCmActivateVc

NdisCmDispatchIncomingCall

NdisMCmDeactivateVc

ProtocolCmCloseCall

ProtocolCmDeactivateVcComplete