共用方式為


TcAddFilter 函式 (traffic.h)

TcAddFilter 函式會將新的篩選與現有的流程產生關聯,讓符合篩選條件的封包導向至相關聯的流程。

篩選包括模式和遮罩。 模式會指定特定參數值,而遮罩會指定哪些參數和參數子字段會套用至指定的篩選。 當模式/遮罩組合套用至一組封包時,相符的封包會導向至對應的篩選相關聯的流程。

流量控制會在 pFilterHandle 參數中傳回新加入篩選的句柄,客戶端可以參考新增的篩選條件。 擱置的流程,例如處理尚未完成回呼例程的 TcAddFlowTcModifyFlow 要求,不能有相關聯的篩選;只有已完成且穩定的流程可以套用相關聯的篩選。

篩選條件與流程之間的關聯性多到一個。 多個篩選條件可以套用至單一流程;不過,篩選條件只能套用至一個流程。 例如,流程 A 可以套用篩選 X、Y 和 Z,但只要流程 A 作用中,篩選 X、Y 和 Z 就無法套用至任何其他流程。

語法

ULONG TcAddFilter(
  [in]  HANDLE         FlowHandle,
  [in]  PTC_GEN_FILTER pGenericFilter,
  [out] PHANDLE        pFilterHandle
);

參數

[in] FlowHandle

流程的句柄,如先前呼叫 TcAddFlow 函式所接收。

[in] pGenericFilter

要安裝之篩選之描述的指標。

[out] pFilterHandle

流量控制傳回篩選句柄的緩衝區指標。 用戶端會在後續呼叫中使用此篩選句柄,以參考新增的篩選條件。

傳回值

傳回碼 Description
NO_ERROR
未發生錯誤的函式執行。
ERROR_INVALID_HANDLE
流程句柄無效。
ERROR_INVALID_PARAMETER
有一個參數無效。
ERROR_INVALID_ADDRESS_TYPE
已提供無效的地址類型。
ERROR_DUPLICATE_FILTER
此介面上的流程上存在相同的篩選。
注意 在 Windows Vista 中,將不會傳回此程序代碼。
 
ERROR_FILTER_CONFLICT
此介面上的流程上存在衝突的篩選。
注意 在 Windows Vista 中,將不會傳回此程序代碼。
 
ERROR_NOT_ENOUGH_MEMORY
系統記憶體不足。
ERROR_NOT就緒
流程正在安裝、修改或刪除,而且不是接受篩選的狀態。

備註

篩選條件可以是不同類型的。 它們通常用來篩選屬於不同網路層的封包。 介面上安裝的篩選類型通常會對應至與介面相關聯之網路層地址的地址類型。 位址類型應在篩選結構中指定。

篩選可能會因為各種原因而遭到拒絕,包括與要求的篩選可能衝突,以及已與流程相關聯的篩選。 系統會提供流量控制特定的錯誤碼,以協助用戶診斷 拒絕 TcAddFilter 函式背後的原因。

注意 使用 TcAddFilter 函式需要系統管理許可權。
 
在 Windows Vista 中,可以建立重疊和相同的篩選。 在這些情況下,更明確的篩選會優先使用。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 traffic.h
程式庫 Traffic.lib
Dll Traffic.dll

另請參閱

TcAddFlow