Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция ProtocolClCloseCallComplete используется клиентами NDIS, ориентированными на подключение. Все клиенты NDIS, ориентированные на подключение, должны иметь функции ProtocolClCloseCallComplete для выполнения асинхронных операций, которые они инициируют с помощью.
Синтаксис
PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;
VOID ProtocolClCloseCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolVcContext,
[in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}
Параметры
[in] Status
Указывает окончательное состояние запроса клиента на закрытие этого вызова, которое может иметь одно из следующих значений:
NDIS_STATUS_SUCCESS
Диспетчер вызовов успешно закрыл вызов, который существовал в заданном VC, и деактивировал VC.
NDIS_STATUS_XXX
Диспетчер вызовов не смог выполнить запрос на закрытие вызова по определенной причине, определяемой CM, и NDIS распространила состояние, возвращенное функцией ProtocolCmCloseCall , клиенту.
[in] ProtocolVcContext
Указывает дескриптор области контекста клиента по VC. Это дескриптор, который клиент изначально передал в NDIS с помощью NdisCoCreateVc или вернулся в NDIS из функции ProtocolCoCreateVc .
[in, optional] ProtocolPartyContext
Указывает дескриптор области контекста клиента для последней оставшейся стороны в созданном клиентом VC, представляющей многоточечные подключения. В противном случае этот параметр имеет значение NULL.
Возвращаемое значение
None
Remarks
Если клиент создал данный VC, а состояние NDIS_STATUS_SUCCESS, клиент теперь может выполнить одно из следующих действий:
- Разорвите VC с помощью NdisCoDeleteVc и отпустите или подготовьтесь к повторному использованию выделенных областей контекста.
- Повторно инициализируйте область контекста для каждого VC и повторно используйте ее VC, чтобы установить еще одно соединение с NdisClMakeCall.
Примеры
Чтобы определить функцию ProtocolCloseCallComplete , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию ProtocolCloseCallComplete с именем MyCloseCallComplete, используйте тип PROTOCOL_CL_CLOSE_CALL_COMPLETE , как показано в этом примере кода:
PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyClCloseCallComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolVcContext,
NDIS_HANDLE ProtocolPartyContext
)
{...}
Тип функции PROTOCOL_CL_CLOSE_CALL_COMPLETE определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции PROTOCOL_CL_CLOSE_CALL_COMPLETE в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. ProtocolCloseCallComplete (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. ProtocolCloseCallComplete (NDIS 5.1)) в Windows XP. |
| Целевая платформа | Windows |
| Header | ndis.h (включая Ndis.h) |
| IRQL | <= DISPATCH_LEVEL |