Поделиться через


Функция QOSQueryFlow (qos2.h)

Функция QOSQueryFlow запрашивает сведения о конкретном потоке, добавленном в подсистему QoS. Эту функцию можно вызывать асинхронно.

Синтаксис

ExternC BOOL QOSQueryFlow(
  [in]            HANDLE         QOSHandle,
  [in]            QOS_FLOWID     FlowId,
  [in]            QOS_QUERY_FLOW Operation,
  [in, out]       PULONG         Size,
  [out]           PVOID          Buffer,
  [in, optional]  DWORD          Flags,
  [out, optional] LPOVERLAPPED   Overlapped
);

Параметры

[in] QOSHandle

Дескриптор подсистемы QOS, возвращаемой QOSCreateHandle.

[in] FlowId

Задает идентификатор потока. QOS_FLOWID — это 32-разрядное целое число без знака.

[in] Operation

Указывает тип запрашиваемых сведений о потоке. Этот параметр указывает, какую структуру будет содержать буфер .

Значение Значение
QOSQueryFlowFundamentals
Буфер будет содержать QOS_FLOW_FUNDAMENTALS структуру.
QOSQueryPacketPriority
Буфер будет содержать структуру QOS_PACKET_PRIORITY .
QOSQueryOutgoingRate
Буфер будет содержать значение UINT64 , указывающее скорость потока, указанную при запросе контракта, в битах в секунду.

[in, out] Size

Указывает размер параметра Buffer в байтах.

Если функция возвращается успешно, этот параметр указывает количество байтов, скопированных в буфер.

Если этот вызов завершается сбоем с ERROR_INSUFFICIENT_BUFFER, этот параметр указывает минимальный необходимый размер буфера для успешного выполнения этой операции.

[out] Buffer

Указатель на структуру, заданную значением параметра Operation .

[in, optional] Flags

Флаги, относящиеся к возвращаемым данным.

Значение Значение
QOS_QUERYFLOW_FRESH
Подсистема QOS будет возвращать только свежие, а не кэшированные данные. Если новые данные недоступны, они будут пытаться получить за счет, возможно, потребуется больше времени. Если это невозможно, вызов завершится ошибкой с кодом ERROR_RETRY ошибки.

Этот флаг применим только в том случае, если для параметра Operation задано значение QOSQueryFlowFundamentals.

[out, optional] Overlapped

Указатель на структуру OVERLAPPED, используемую для асинхронного вывода. Если эта функция не вызывается асинхронно, ей необходимо присвоить значение NULL .

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция завершается сбоем, возвращаемое значение равно 0. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
ERROR_ACCESS_DISABLED_BY_POLICY
В настоящее время подсистема QoS настроена политикой, чтобы запретить эту операцию на сетевом пути между этим узлом и конечным узлом. Например, политика по умолчанию запрещает запуск экспериментов qWAVE в местах назначения вне канала.
ERROR_TIMEOUT
Время ожидания запроса к подсистеме QOS истекло, прежде чем можно было собрать достаточно полезных сведений.
ERROR_INSUFFICIENT_BUFFER
Длина буфера, указанная параметром Size , недостаточно для запрашиваемых данных. Теперь параметр Size содержит минимальный необходимый размер.
ERROR_INVALID_HANDLE
Недопустимый параметр QOSHandle .
ERROR_INVALID_PARAMETER
Недостаточно значения параметра FlowId или размера буфера .
ERROR_NOT_FOUND
Указан недопустимый идентификатор FlowId .
ERROR_NOT_ENOUGH_MEMORY
Указывает, что не удалось выделить память.
ERROR_NOT_SUPPORTED
Выполняемой операции требуются сведения, отсутствуют в подсистеме QoS. Получение этих сведений в этой сети в настоящее время не поддерживается. Например, оценки пропускной способности нельзя получить по сетевому пути, где конечный узел находится вне связи.
ERROR_NO_SYSTEM_RESOURCES
Недостаточно ресурсов для выполнения операции.
ERROR_IO_DEVICE
Выполнить запрос невозможно из-за ошибки устройства ввода-вывода.
ERROR_IO_PENDING
Указывает, что запрос потока обновления был успешно инициирован.
ERROR_DEVICE_REINITIALIZATION_NEEDED
Указанное устройство требует повторной инициализации из-за ошибок оборудования. Приложение должно очиститься и снова вызвать QOSCreateHandle .
ERROR_ADAP_HDW_ERR
Произошла ошибка оборудования сетевого адаптера.
ERROR_HOST_UNREACHABLE
Не удается получить доступ к сетевому расположению.
ERROR_NO_DATA
Не является допустимыми возвращаемыми данными.
ERROR_RETRY
В настоящее время недостаточно данных о сетевых условиях для ответа на запрос. Обычно это временное состояние, в котором qWAVE имеет ошибку на стороне осторожности, так как он ожидает больше данных, прежде чем определить состояние сети.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header qos2.h (включая Qos2.h)
Библиотека Qwave.lib
DLL Qwave.dll

См. также раздел

Качество звука и видео в Windows (qWAVE)