функция обратного вызова PROTOCOL_CL_NOTIFY_CLOSE_AF (ndis.h)
Функция ProtocolClNotifyCloseAf уведомляет клиента CoNDIS о том, что клиент должен закрыть связанное семейство адресов (AF).
Синтаксис
PROTOCOL_CL_NOTIFY_CLOSE_AF ProtocolClNotifyCloseAf;
NDIS_STATUS ProtocolClNotifyCloseAf(
[in] NDIS_HANDLE ClientAfContext
)
{...}
Параметры
[in] ClientAfContext
Предоставленный клиентом дескриптор контекстной области для связанного af. Клиент выделил эту область контекста и передал этот дескриптор в NDIS в вызовеФункция NdisClOpenAddressFamilyEx.
Возвращаемое значение
ProtocolClNotifyCloseAf может возвращать одно из следующих элементов:
Код возврата | Описание |
---|---|
|
Клиент успешно закрыл семейство адресов. |
|
Клиент обрабатывает этот запрос асинхронно и вызываетФункция NdisClNotifyCloseAddressFamilyComplete по завершении операции закрытия. |
|
Клиент не выполнил запрос по определенной драйверу причине. |
Комментарии
TheДля клиентов CoNDIS требуется функция ProtocolClNotifyCloseAf. NDIS вызывает ProtocolClNotifyCloseAf , когда диспетчер вызовов уведомляет NDIS о том, что семейство адресов (AF), указанное параметром ProtocolAfContext , должно быть закрыто. В ответ клиент должен:
- Вызывайте функцию NdisClDropParty столько раз, сколько необходимо, пока только одна сторона не останется активной в каждом многоточеичном виртуальном подключении ( VC), если у клиента есть какие-либо активные многоточечные подключения.
- Вызовите функцию NdisClCloseCall столько раз, сколько необходимо, чтобы закрыть все вызовы, которые все еще открыты и связаны с AF.
- Вызовите функцию NdisClDeregisterSap столько раз, сколько необходимо, чтобы отменить регистрацию всех точек доступа к службам (SAP), зарегистрированных клиентом в диспетчере вызовов.
- ВызовитеФункция NdisClCloseAddressFamily для закрытия af.
NDIS вызывает ProtocolClNotifyCloseAf по адресу IRQL <= DISPATCH_LEVEL.
Клиент может использовать NdisAfHandle , когда af is open or whileОперация ProtocolClNotifyCloseAf ожидается. Если Функция ProtocolClNotifyCloseAf возвращает NDIS_STATUS_PENDING, используйте дескриптор в Вызов NdisClNotifyCloseAddressFamilyComplete после завершения операции закрытия.
Примеры
Чтобы определить функцию ProtocolClNotifyCloseAf , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию ProtocolClNotifyCloseAf с именем MyClNotifyCloseAf, используйте тип PROTOCOL_CL_NOTIFY_CLOSE_AF , как показано в следующем примере кода:
PROTOCOL_CL_NOTIFY_CLOSE_AF MyClNotifyCloseAf;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
NDIS_STATUS
MyClNotifyCloseAf(
NDIS_HANDLE ProtocolAfContext
)
{...}
Тип функции PROTOCOL_CL_NOTIFY_CLOSE_AF определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции PROTOCOL_CL_NOTIFY_CLOSE_AF в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |