Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция QOSStartTrackingClient уведомляет подсистему QOS о существовании нового клиента. Вызов этой функции повышает вероятность того, что подсистема QOS будет собирать достаточные сведения о сетевом пути, чтобы помочь при вызове QOSSetFlow для настройки потока.
Синтаксис
ExternC BOOL QOSStartTrackingClient(
[in] HANDLE QOSHandle,
[in] PSOCKADDR DestAddr,
DWORD Flags
);
Параметры
[in] QOSHandle
Дескриптор подсистемы QOS, возвращаемой QOSCreateHandle.
[in] DestAddr
Указатель на структуру sockaddr , содержащую IP-адрес клиентского устройства. Клиенты идентифицируются по их IP-адресу и семейству адресов. Любой номер порта, указанный в структуре sockaddr, будет игнорироваться.
Flags
Зарезервировано для последующего использования. Должен иметь значение 0.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция завершается сбоем, возвращаемое значение равно 0. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Недопустимый параметр QOSHandle . |
|
Недопустимый параметр DestAddr . |
|
Указывает, что произошел сбой выделения памяти. |
|
Недостаточно ресурсов для выполнения операции. |
|
Выполнить запрос невозможно из-за ошибки устройства ввода-вывода. |
|
Указанное устройство требует повторной инициализации из-за ошибок оборудования. Приложение должно очистить и снова вызвать QOSCreateHandle . |
|
Запрос не поддерживается. |
|
Произошла ошибка оборудования сетевого адаптера. |
|
Не удается связаться с сетевым расположением. |
Комментарии
После получения вызова QOSStartTrackingClient подсистема QoS начинает сбор сведений о клиенте, таких как возможности качества обслуживания и доступная пропускная способность по сквозной схеме.
Приложение должно вызывать эту функцию, как только ему становится известно о клиентском устройстве, которому может потребоваться поток качества обслуживания. Например, эта функция должна вызываться при первом подключении устройства проигрывателя мультимедиа к приложению сервера мультимедиа.
Сетевые эксперименты, выполняемые QOSStartTrackingClient , не представляют заметной нагрузки на сеть, даже если поток не запускается в течение длительного периода времени. Служба qWAVE динамически настраивает трафик эксперимента на основе активности подсистемы QoS.
Чтобы эта функция работала, необходимо реализовать обнаружение топологии на уровне каналов (LLTD) на компьютере-приемнике или устройстве.
Примеры
В следующем коде показано использование функций, обработка распространенных исключений и обязательные инициализации параметров. Фактические значения параметров могут отличаться в зависимости от версии QoS. Файл заголовка Winsock2.h должен быть включен для использования определенных Winsock идентификаторов или функций.
QOS_VERSION Version;
HANDLE QoSHandle = NULL;
BOOL QoSResult = FALSE;
Version.MajorVersion = 1;
Version.MinorVersion = 0;
// Get a handle to the QoS subsystem (required for tracking).
QoSResult = QOSCreateHandle(
&Version,
&QoSHandle );
if(!QOSStartTrackingClient(QoSHandle, (sockaddr*)ptr->ai_addr, 0))
{
std::cerr << std::endl;
std::cerr << __FILE__ <<" Line: " << __LINE__ ;
std::cerr << " - QOSStartTrackingClient failed. Exception code: ";
std::cerr << GetLastError();
if (GetLastError() == ERROR_NOT_SUPPORTED)
{
std::cerr << std::endl;
std::cerr << " ERROR_NOT_SUPPORTED" << std::endl;
std::cerr << "This operation requires information";
std::cerr << "that the QoS subsystem does not have. " << std::endl;
}
}
else
std::cout << "QoS client tracking started." << std::endl;
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | qos2.h (включая Qos2.h) |
Библиотека | Qwave.lib |
DLL | Qwave.dll |