Функция NdisMCoDeactivateVcComplete (ndis.h)
NdisMCoDeactivateVcComplete уведомляет NDIS и диспетчер вызовов, что драйвер минипорта завершил обработку запроса деактивации VC, инициированного CM, для которого драйвер минипорта ранее вернул NDIS_STATUS_PENDING.
Синтаксис
void NdisMCoDeactivateVcComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisVcHandle
);
Параметры
[in] Status
Указывает окончательное состояние операции деактивации-VC, которая может быть NDIS_STATUS_SUCCESS или любой NDIS_STATUS_ XXX, кроме NDIS_STATUS_PENDING.
[in] NdisVcHandle
Задает дескриптор, определяющий VC. Вызывающий объект получил этот дескриптор из состояния VC, указанного MiniportVcContext передан в качестве входного параметра в его функция MiniportCoDeactivateVc.
Возвращаемое значение
Никакой
Замечания
Драйвер минипорта, ориентированный на подключение, должен вызывать NdisMCoDeactivateVcComplete, если его функция miniportCoDeactivateVc ранее возвращалась NDIS_STATUS_PENDING в ответ на запрос на деактивацию VC, определяемого указанным NdisVcHandle. Диспетчер вызовов, инициирующий деактивацию VC с вызовом NdisCmDeactivateVc, не может уведомить NDIS или его клиента о отключении передачи в VC, пока драйвер минипорта не вызовет NdisMCoDeactivateVcComplete.
Перед деактивацией VC драйвер минипорта должен завершить все ожидающие передачи в VC. То есть минипорт-драйвер должен указывать все выдающиеся приемы и передавать все невыполненные отправки перед вызовом NdisMCoDeactivateVcComplete.
Вызов NdisMCoDeactivateVcComplete приводит к вызову NDIS функция ProtocolCmDeactivateVcComplete диспетчера вызовов, которая первоначально запрашивала деактивацию VC. После вызова NdisMCoDeactivateVcCompleteдрайвер минипорта не может указывать на получение и передачу в VC.