共用方式為


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

在網路上接聽之進程的映像檔名稱。 它必須是完整路徑,但可能包含環境變數。 如果 imageFileNameNULL,函式會判斷是否允許所有應用程式的埠。

[in] ipVersion

流量的IP版本。 如果 localAddress 不是 NULL,則不得 NET_FW_IP_VERSION_ANY

[in] portNumber

流量的本機 IP 埠號碼。

[in] localAddress

點十進位 IPv4 位址或指定流量本機位址的 IPv6 十六進位位址。 一般而言,這是傳遞至系結的位址。 如果 localAddressNULL,函式會判斷是否允許所有介面的埠。

[in] ipProtocol

流量的IP通訊協定, NET_FW_IP_PROTOCOL_TCPNET_FW_IP_PROTOCOL_UDP

[out] allowed

以VARIANT_TRUE值或VARIANT_FALSE是否允許埠至少用於某些本機介面和遠端位址。

[out] restricted

以 VARIANT_TRUE 或 VARIANT_FALSE值表示此埠是否有某些本機介面或遠端位址遭到封鎖。 例如,如果埠僅限於本機子網。

傳回值

C++

傳回碼 Description
E_ACCESSDENIED
作業因許可權問題而停止。
E_INVALIDARG
方法失敗,因為參數無效。
E_OUTOFMEMORY
方法無法配置所需的記憶體。
E_POINTER
方法失敗,因為指標無效。
 

VB

如果方法成功,傳回值會S_OK。

如果方法失敗,傳回值就是下列其中一個錯誤碼。

傳回碼 Description
E_ACCESSDENIED
作業因許可權問題而停止。
E_INVALIDARG
方法失敗,因為參數無效。
E_OUTOFMEMORY
方法無法配置所需的記憶體。
E_POINTER
方法失敗,因為指標無效。

備註

通常建議使用 INetFwPolicy2::IsRuleGroupEnabled 方法取代此方法。

IsPortAllowed 方法會檢查流量是否允許使用目前的防火牆組態:

  • 特定應用程式。
  • 特定埠。
  • 特定埠上的特定應用程式。

在其 作業中,IsPortAllowed 會考慮防火牆目前是否已啟用或停用、目前設定檔例外狀況清單中是否允許應用程式、目前配置檔例外狀況清單中是否允許埠、是否已啟用檔案和列印共用選項,以及是否已啟用遠端管理選項。

由於判斷是否允許埠的許多因素,因此會傳回透過此方法的輸入參數所提供的更特定資訊,更可能傳回具有有意義限制的明確結果。

規格需求

需求
最低支援的用戶端 Windows Vista、Windows XP SP2 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 SP1 [僅限傳統型應用程式]
目標平台 Windows
標頭 netfw.h
Dll FirewallAPI.dll;windows XP sp2 上的 Hnetcfg.dll

另請參閱

INetFwMgr

NET_FW_IP_PROTOCOL

NET_FW_IP_VERSION