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 將包含哪些結構。
值 | 意義 |
---|---|
|
緩衝區 將包含 QOS_FLOW_FUNDAMENTALS 結構。 |
|
緩衝區 將包含 QOS_PACKET_PRIORITY 結構。 |
|
Buffer 會包含 UINT64 值,指出要求合約時指定的流量速率,以每秒位為單位。 |
[in, out] Size
表示 Buffer 參數的大小,以位元組為單位。
在函式傳回時,如果成功,此參數會指定複製到 Buffer 的位元元組數目。
如果此呼叫因 ERROR_INSUFFICIENT_BUFFER而失敗,此參數會指出所需的 最小緩衝區 大小,才能順利完成此作業。
[out] Buffer
Operation 參數值所指定結構的指標。
[in, optional] Flags
與所傳回數據相關的旗標。
值 | 意義 |
---|---|
|
QOS 子系統只會傳回全新、非快取的數據。 如果無法使用全新的數據,它會嘗試取得這類數據,但代價可能是花費更多時間。 如果無法這樣做,呼叫將會失敗,並出現錯誤碼 ERROR_RETRY。
只有當 Operation 參數設定為 QOSQueryFlowFundamentals 時,才適用這個旗標。 |
[out, optional] Overlapped
用於異步輸出之重疊結構的指標。 如果未以異步方式呼叫此函式,則必須將此函式設定為 NULL 。
傳回值
如果函式成功,則傳回非零的值。
如果函式失敗,則傳回值為 0。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 接下來有一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
QoS 子系統目前由原則設定,不允許此主機與目的地主機之間的網路路徑上執行此作業。 例如,默認原則可防止 qWAVE 實驗執行到離連結目的地。 |
|
QOS 子系統的要求已逾時,才能收集足夠的實用資訊。 |
|
Size 參數所指定的緩衝區長度不足以用於查詢的數據。 Size 參數現在包含所需的最小大小。 |
|
QOSHandle 參數無效。 |
|
FlowId 參數或緩衝區大小不足。 |
|
指定的 FlowId 無效。 |
|
表示記憶體配置失敗。 |
|
正在執行的作業需要 QoS 子系統沒有的資訊。 目前不支援在此網路上取得這項資訊。 例如,無法在目的地主機關閉連結的網路路徑上取得頻寬估計。 |
|
資源不足,無法執行作業。 |
|
因為 I/O 裝置錯誤,所以無法執行要求。 |
|
表示已成功起始更新流程要求。 |
|
指定的裝置因為硬體錯誤而需要重新初始化。 應用程式應該會再次清除並呼叫 QOSCreateHandle 。 |
|
發生網路適配器硬體錯誤。 |
|
無法連線到網路位置。 |
|
不是要傳回的有效數據。 |
|
目前網路狀況的數據不足,無法回應查詢。 這通常是暫時性狀態,當 qWAVE 在確定網路狀態之前等候更多數據時,qWAVE 會小心側邊。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | qos2.h (包含 Qos2.h) |
程式庫 | Qwave.lib |
Dll | Qwave.dll |