Функция 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 вызывает функцию протокола ProtocolCmDeactivateVcComplet e при завершении этой операции.
Замечания
Автономный диспетчер вызовов вызывает NdisCmDeactivateVc в качестве важного шага закрытия вызова, как правило, после обмена пакетами с сетевыми компонентами, которые разрывают вызов.
Вызов NdisCmDeactivateVc приводит к вызову NDIS базовой функции драйвера минипорта MiniportCoDeactivateVc, которая может отменить текущие параметры вызова для передачи в VC, возможно, повторно инициализировать их для значений по умолчанию, определяемых драйвером минипорта. Если VC повторно активируется для другого вызова, клиент или диспетчер вызовов будет предоставлять новые параметры вызова драйверу мини-порта.
NdisVcHandle, переданной NdisCmDeactivateVc остается действительным после завершения деактивации VC. Деактивация любого VC позволяет создателю повторно инициализировать VC для повторного использования:
- После деактивации VC и закрытия вызова клиент может повторно использовать VC, который он первоначально создал для выполнения другого вызова с NdisClMakeCall.
- После деактивации VC и закрытия вызова CM может повторно использовать VC, который он первоначально создал, чтобы указать другой входящий вызов к тому же клиенту с NdisCmDispatchIncomingCall.
Только автономные диспетчеры вызовов, которые регистрируют себя в качестве драйверов протокола NDIS, могут вызывать NdisCmDeactivateVc. Драйверы минипорта, ориентированные на подключение, которые обеспечивают встроенную поддержку управления вызовами, NdisMCmDeactivateVc.