функция обратного вызова PROTOCOL_CO_DELETE_VC (ndis.h)
Требуется функция ProtocolCoDeleteVc . Эта функция удаляет состояние клиента или диспетчера вызовов для установленного виртуального подключения, которое закрывается первоначальным создателем этого VC.
Синтаксис
PROTOCOL_CO_DELETE_VC ProtocolCoDeleteVc;
NDIS_STATUS ProtocolCoDeleteVc(
[in] NDIS_HANDLE ProtocolVcContext
)
{...}
Параметры
[in] ProtocolVcContext
Указывает дескриптор для области контекста клиента или диспетчера вызовов по каждому VC. Протокол изначально предоставил этот дескриптор из своей функции ProtocolCoCreateVc .
Возвращаемое значение
ProtocolCoDeleteVc может возвращать одно из следующих данных:
Код возврата | Описание |
---|---|
|
Протокол выпустил или подготовился к повторному использованию всех ресурсов, которые он изначально выделил для VC. |
|
VC по-прежнему активен, и протокол имеет незавершенные операции в VC, поэтому его не удалось уничтожить. |
|
Протоколу не удалось удалить VC по причине, определенной драйвером. |
Комментарии
ProtocolCoDeleteVc — это обратная функция драйвера ProtocolCoCreateVc . Как правило, он освобождает все динамические ресурсы и структуры, которые ранее были выделены диспетчером вызовов или клиентом для выполнения операций с активным VC.
Когда ProtocolCoDeleteVc возвращает элемент управления с NDIS_STATUS_SUCCESS, NdisVcHandle , который его функция ProtocolCoCreateVc , хранящуюся в области в ProtocolVcContext, становится недопустимой.
ProtocolCoDeleteVc может вернуть любой определяемый драйвером NDIS_STATUS_XXX , чтобы не удалось удалить VC, но не может вернуть NDIS_STATUS_PENDING. Вызовы ProtocolCoDeleteVc по своей природе являются синхронными.
Примеры
Чтобы определить функцию ProtocolCoDeleteVc , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию ProtocolCoDeleteVc с именем MyCoDeleteVc, используйте тип PROTOCOL_CO_DELETE_VC , как показано в следующем примере кода:
PROTOCOL_CO_DELETE_VC MyCoDeleteVc;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
NDIS_STATUS
MyCoDeleteVc(
NDIS_HANDLE ProtocolVcContext
)
{...}
Тип функции PROTOCOL_CO_DELETE_VC определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции PROTOCOL_CO_DELETE_VC в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. ProtocolCoDeleteVc (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. ProtocolCoDeleteVc (NDIS 5.1)) в Windows XP. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |