функция обратного вызова PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE (ndis.h)
Функция ProtocolClModifyCallQoSComplete используется клиентами NDIS, ориентированными на подключение, которые могут динамически изменять качество обслуживания при подключении. Такие клиенты должны иметь функции ProtocolClModifyCallQoSComplete для выполнения асинхронных операций, которые они инициируют с помощью NdisClModifyCallQoS. В противном случае зарегистрированная функция ProtocolClModifyCallQoSComplete такого драйвера протокола может просто вернуть управление.
Синтаксис
PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;
void ProtocolClModifyCallQosComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
Параметры
[in] Status
Указывает окончательное состояние асинхронного запроса клиента на изменение параметров вызова для этого проверяемого экземпляра, как одно из следующих:
NDIS_STATUS_SUCCESS
QoS было изменено в соответствии с запросом клиента.
NDIS_STATUS_RESOURCES
NDIS или диспетчеру вызовов не удалось изменить качество обслуживания, так как один из них не мог динамически выделять достаточные ресурсы.
NDIS_STATUS_INVALID_DATA
Недопустимые параметры вызова, предоставленные клиентом NdisClModifyCallQoS .
NDIS_STATUS_FAILURE
Диспетчеру вызовов не удалось изменить качество обслуживания из-за сбоя в сети или в другом сетевом компоненте, ориентированном на подключение.
NDIS_STATUS_XXX
Диспетчеру вызовов не удалось изменить качество обслуживания, и NDIS распространила на клиент состояние сбоя, определяемое CM.
[in] ProtocolVcContext
Указывает дескриптор области контекста клиента по каждому VC, который клиент изначально предоставлял NDIS при вызове NdisCoCreateVc для настройки VC для исходящего запроса вызова или из функции ProtocolCoCreateVc , если клиент принял входящий вызов в этом VC.
[in] CallParameters
Указатель на буферизированную CO_CALL_PARAMETERS структуру, содержащую запрошенное изменение качества обслуживания, указанное клиентом, или, возможно, исходное качество обслуживания для этого VC, установленное при активации подключения, которое был восстановлен диспетчером вызовов.
Возвращаемое значение
None
Remarks
Вызов ProtocolClModifyCallQoSComplete указывает, что диспетчер вызовов завершил обработку инициированного клиентом запроса на изменение качества обслуживания в активном VC. Например, если базовый сетевой носитель поддерживает динамические изменения качества обслуживания, клиент может в любое время запросить изменения в активном виртуальном сервере.
Если вызов клиента к NdisClModifyCallQoS завершается успешно, ProtocolClModifyCallQoSComplete может принять изменение качества обслуживания, просто вернув элемент управления. В противном случае ProtocolClModifyCallQoSComplete может участвовать в дальнейших переговорах с диспетчером вызовов, если разработчик клиента налагает разумное ограничение на количество возможных повторных переговоров. Кроме того, ProtocolClModifyCallQoSComplete может просто прервать вызов с помощью NdisCloseCall всякий раз, когда диспетчер вызовов отклоняет запрос на изменение качества обслуживания, и ранее установленное качество обслуживания становится неприемлемым для клиента.
Примеры
Чтобы определить функцию ProtocolClModifyCallQoSComplete , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию ProtocolClModifyCallQoSComplete с именем MyClModifyCallQoSComplete, используйте тип PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE , как показано в этом примере кода:
PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyClModifyCallQoSComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
Тип функции PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. ProtocolClModifyCallQoSComplete (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. Раздел ProtocolClModifyCallQoSComplete (NDIS 5.1)) в Windows XP. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |