INetFwMgr::IsPortAllowed 方法 (netfw.h)
[Windows 防火牆 API 可用於需求一節中指定的操作系統。 它在後續版本中可能會變更或無法使用。 針對 Windows Vista 和更新版本,建議使用 具有進階安全性 API 的 Windows 防火牆 。]
判斷應用程式是否可以接聽指定埠上的輸入流量。
語法
HRESULT IsPortAllowed(
[in] BSTR imageFileName,
[in] NET_FW_IP_VERSION ipVersion,
[in] LONG portNumber,
[in] BSTR localAddress,
[in] NET_FW_IP_PROTOCOL ipProtocol,
[out] VARIANT *allowed,
[out] VARIANT *restricted
);
參數
[in] imageFileName
在網路上接聽之進程的映像檔名稱。 它必須是完整路徑,但可能包含環境變數。 如果 imageFileName 為 NULL,函式會判斷是否允許所有應用程式的埠。
[in] ipVersion
流量的IP版本。 如果 localAddress 不是 NULL,則不得 NET_FW_IP_VERSION_ANY。
[in] portNumber
流量的本機 IP 埠號碼。
[in] localAddress
點十進位 IPv4 位址或指定流量本機位址的 IPv6 十六進位位址。 一般而言,這是傳遞至系結的位址。 如果 localAddress 為 NULL,函式會判斷是否允許所有介面的埠。
[in] ipProtocol
流量的IP通訊協定, NET_FW_IP_PROTOCOL_TCP 或 NET_FW_IP_PROTOCOL_UDP。
[out] allowed
以VARIANT_TRUE值或VARIANT_FALSE是否允許埠至少用於某些本機介面和遠端位址。
[out] restricted
以 VARIANT_TRUE 或 VARIANT_FALSE值表示此埠是否有某些本機介面或遠端位址遭到封鎖。 例如,如果埠僅限於本機子網。
傳回值
C++
傳回碼 | Description |
---|---|
|
作業因許可權問題而停止。 |
|
方法失敗,因為參數無效。 |
|
方法無法配置所需的記憶體。 |
|
方法失敗,因為指標無效。 |
VB
如果方法成功,傳回值會S_OK。如果方法失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | Description |
---|---|
|
作業因許可權問題而停止。 |
|
方法失敗,因為參數無效。 |
|
方法無法配置所需的記憶體。 |
|
方法失敗,因為指標無效。 |
備註
通常建議使用 INetFwPolicy2::IsRuleGroupEnabled 方法取代此方法。
IsPortAllowed 方法會檢查流量是否允許使用目前的防火牆組態:
- 特定應用程式。
- 特定埠。
- 特定埠上的特定應用程式。
在其 作業中,IsPortAllowed 會考慮防火牆目前是否已啟用或停用、目前設定檔例外狀況清單中是否允許應用程式、目前配置檔例外狀況清單中是否允許埠、是否已啟用檔案和列印共用選項,以及是否已啟用遠端管理選項。
由於判斷是否允許埠的許多因素,因此會傳回透過此方法的輸入參數所提供的更特定資訊,更可能傳回具有有意義限制的明確結果。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista、Windows XP SP2 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | netfw.h |
Dll | FirewallAPI.dll;windows XP sp2 上的 Hnetcfg.dll |