функция обратного вызова MINIPORT_CO_DEACTIVATE_VC (ndis.h)

Функция MiniportCoDeactivateVc необходима для минипортов, ориентированных на подключение. NDIS вызывает MiniportCoDeactivateVc, чтобы указать, что VC помечается как непригодный для использования.

Примечание Функцию необходимо объявить с помощью типа MINIPORT_CO_DEACTIVATE_VC . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

MINIPORT_CO_DEACTIVATE_VC MiniportCoDeactivateVc;

NDIS_STATUS MiniportCoDeactivateVc(
  [in] NDIS_HANDLE MiniportVcContext
)
{...}

Параметры

[in] MiniportVcContext

Указан дескриптор для области контекста, выделенной драйвером мини-порта, в которой драйвер мини-порта хранит сведения о состоянии по каждому VC. Драйвер минипорта предоставил этот дескриптор NDIS из своей функции MiniportCoCreateVc .

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

Код возврата Описание
NDIS_STATUS_SUCCESS
Указывает, что драйвер мини-порта успешно прервал связь через VC и помечает его как непригодный для использования.
NDIS_STATUS_PENDING
Указывает, что драйвер мини-порта выполнит запрос на асинхронную остановку VC. Когда драйвер минипорта завершит остановку VC, он должен вызвать NdisMCoDeactivateVcComplete , чтобы сообщить NDIS о завершении этой операции.

Комментарии

MiniportCoDeactivateVc взаимодействует со своим сетевым адаптером, чтобы завершить весь обмен данными через этот виртуальный сервер (другими словами, отмена программы приема или отправки буферов на адаптере). Драйвер минипорта также должен пометить VC, его контекстную область, как неактивную, чтобы предотвратить дальнейшее взаимодействие через VC.

Между вызовами MiniportCoActivateVc и MiniportCoDeactivateVc нет связи "один к одному". Хотя NDIS может вызывать MiniportCoActivateVc несколько раз на одном VC, для завершения виртуального подключения выполняется только один вызов MiniportCoDeactivateVc . Например, VC можно повторно использовать для различных вызовов, что может привести к нескольким вызовам MiniportCoActivateVc.

Примеры

Чтобы определить функцию MiniportCoDeactivateVc , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию MiniportCoDeactivateVc с именем MyCoDeactivateVc, используйте тип MINIPORT_CO_DEACTIVATE_VC , как показано в этом примере кода:

MINIPORT_CO_DEACTIVATE_VC MyCoDeactivateVc;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
NDIS_STATUS
 MyCoDeactivateVc(
    NDIS_HANDLE  MiniportVcContext
    )
  {...}

Тип функции MINIPORT_CO_DEACTIVATE_VC определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_CO_DEACTIVATE_VC в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье О поведении функции.

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. MiniportCoDeactivateVc (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. MiniportCoDeactivateVc (NDIS 5.1)) в Windows XP.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL <= DISPATCH_LEVEL

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

MiniportCoActivateVc

NdisMCoDeactivateVcComplete