QOSNotifyFlow 函式 (qos2.h)
QOSNotifyFlow 函式會註冊呼叫應用程式,以接收有關網路特性變更的通知,例如壅塞。 當所需的輸送量能夠達成時,也可以傳送通知。
語法
ExternC BOOL QOSNotifyFlow(
[in] HANDLE QOSHandle,
[in] QOS_FLOWID FlowId,
[in] QOS_NOTIFY_FLOW Operation,
[in, out, optional] PULONG Size,
[in, out] PVOID Buffer,
DWORD Flags,
[out, optional] LPOVERLAPPED Overlapped
);
參數
[in] QOSHandle
QOSCreateHandle 所傳回之 QOS 子系統的句柄。
[in] FlowId
指定應用程式想要接收通知的流程識別碼。 QOS_FLOWID為不帶正負號的32位整數。
[in] Operation
QOS_NOTIFY_FLOW值,指出所要求的通知類型。
[in, out, optional] Size
表示 Buffer 參數的大小,以位元組為單位。
在函式傳回時,如果成功,此參數會指定複製到 Buffer 的位元元組數目。
如果此呼叫因 ERROR_INSUFFICIENT_BUFFER而失敗,此參數會指出所需的 最小緩衝區 大小,才能順利完成此作業。
[in, out] Buffer
UINT64 的指標,指出傳送通知的頻寬。 只有當 Operation 參數設定為 QOSNotifyAvailable 時,才會使用此參數。 針對 QOSNotifyCongested 和 QOSNotifyUncongested 選項,此參數必須在輸入時設定為 NULL 。
Flags
保留供未來使用。 此參數必須設定為 0。
[out, optional] Overlapped
用於異步輸出之重疊結構的指標。 如果未以異步方式呼叫此函式,則此函式必須為 NULL 。
傳回值
如果函式成功,當 符合 Operation 參數所設定的條件時,就會傳送非零的傳回值。
如果函式失敗,則傳回值為 0。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 接下來有一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
QoS 子系統目前由原則設定,不允許此主機與目的地主機之間的網路路徑上執行此作業。 例如,默認原則可防止 qWAVE 實驗執行到離連結目的地。 |
|
表示已成功收到通知要求。 結果會在重疊完成期間傳回。 |
|
QOSHandle 參數無效。 |
|
FlowId 參數無效。 |
|
表示記憶體配置失敗。 |
|
指定的 FlowId 無效。 |
|
正在執行的作業需要 QoS 子系統沒有的資訊。 目前不支援在此網路上取得這項資訊。 例如,無法在目的地主機關閉連結的網路路徑上取得頻寬估計。 |
|
資源不足,無法執行作業。 |
|
因為 I/O 裝置錯誤,所以無法執行要求。 |
|
指定的裝置因為硬體錯誤而需要重新初始化。 應用程式應該會再次清除並呼叫 QOSCreateHandle 。 |
|
QOS 子系統已判斷所要求的作業無法在指定的網路路徑上完成。 |
|
發生網路適配器硬體錯誤。 |
|
無法連線到網路位置。 |
|
與遠端主機的網路連線失敗。 |
|
此流程上已經有相同類型的通知要求。 |
備註
此函式可以異步呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | qos2.h (包含 Qos2.h) |
程式庫 | Qwave.lib |
Dll | Qwave.dll |