다음을 통해 공유


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

QOSCreateHandle에서 반환된 QOS 하위 시스템에 대한 핸들입니다.

[in] FlowId

흐름 식별자를 지정합니다. QOS_FLOWID 부호 없는 32비트 정수입니다.

[in] Operation

쿼리할 흐름 정보의 유형을 지정합니다. 이 매개 변수는 Buffer 에 포함할 구조를 지정합니다.

의미
QOSQueryFlowFundamentals
버퍼 에는 QOS_FLOW_FUNDAMENTALS 구조가 포함됩니다.
QOSQueryPacketPriority
버퍼 에는 QOS_PACKET_PRIORITY 구조체가 포함됩니다.
QOSQueryOutgoingRate
버퍼 에는 계약을 요청할 때 지정된 흐름 속도를 초당 비트 단위로 나타내는 UINT64 값이 포함됩니다.

[in, out] Size

Buffer 매개 변수의 크기를 바이트 단위로 나타냅니다.

함수 반환에 성공하면 이 매개 변수는 Buffer에 복사된 바이트 수를 지정합니다.

이 호출이 ERROR_INSUFFICIENT_BUFFER 실패하면 이 매개 변수는 이 작업을 성공적으로 완료하기 위해 필요한 최소 버퍼 크기를 나타냅니다.

[out] Buffer

Operation 매개 변수 값으로 지정된 구조체에 대한 포인터입니다.

[in, optional] Flags

반환되는 데이터와 관련된 플래그입니다.

의미
QOS_QUERYFLOW_FRESH
QOS 하위 시스템은 캐시되지 않은 새 데이터만 반환합니다. 새 데이터를 사용할 수 없는 경우 더 많은 시간이 소요되는 대신 이러한 데이터를 가져오려고 시도합니다. 이렇게 할 수 없는 경우 오류 코드 ERROR_RETRY 호출이 실패합니다.

이 플래그는 Operation 매개 변수가 QOSQueryFlowFundamentals로 설정된 경우에만 적용됩니다.

[out, optional] Overlapped

비동기 출력에 사용되는 OVERLAPPED 구조체에 대한 포인터입니다. 이 함수가 비동기적으로 호출되지 않는 경우 NULL 로 설정해야 합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 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
I/O 디바이스 오류 때문에 요청을 수행할 수 없는 경우
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
헤더 qos2.h(Qos2.h 포함)
라이브러리 Qwave.lib
DLL Qwave.dll

추가 정보

품질 Windows 오디오/비디오 환경(qWAVE)