共用方式為


設定登錄檔以進行埠配置和選擇性系結

從 Windows 2000 開始,應該使用名為 Rpccfg.exe 的 Windows Resource Kit 中的公用程式來設定系結。 如需詳細資訊,請參閱 Windows Resource Kit 以取得適當的作系統版本。

針對 Windows 2000 以前的 Windows 版本,下表中的登錄機碼會指定動態埠配置的系統預設設定,以及系結至多重主機電腦上的 NIC。 您必須先建立這些金鑰,然後指定適當的設定。

使用 RpcServerUseProtseqEx 函式會影響這些設定。 開發人員應該熟悉本節中所述的登錄設定,以及管理埠配置時 RpcServerUseProtseqEx 函式。 下表後面有一個包含三個假設應用程式的範例,說明這些設定和 RpcServerUseProtseqEx 函式如何互通。

如果遺失索引鍵或包含無效值,則整個組態會標示為無效,且所有 RpcServerUseProtseq* 透過 ncacn_ip_tcpncadg_ip_udp 呼叫將會失敗。

注意

配置給程序的埠會維持配置,直到該程序終止為止。 如果所有可用的埠都正在使用中,函式會傳回RPC_S_OUT_OF_RESOURCES。

 

埠金鑰 數據類型 描述
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               Ports
REG_MULTI_SZ 指定一組IP埠範圍,由因特網提供的所有埠或因特網無法使用的所有埠組成。 每個字串都代表單一埠或一組包含的埠(例如,1000-1050、1984)。 如果有任何專案超出範圍 0 到 65535,或無法解譯任何字串,RPC 運行時間會將整個組態視為無效。
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               PortsInternetAvailable
REG_SZ Y 或 N (不區分大小寫)。 如果為 Y,埠金鑰中列出的埠就是該電腦上所有因特網可用的埠。 如果為 N,則埠密鑰中列出的埠都是無法使用因特網的埠。
HKEY_LOCAL_MACHINE   Software      Microsoft         Rpc            Internet               UseInternetPorts
REG_SZ Y 或 N (不區分大小寫)。 指定系統默認原則。 如果為 Y,使用預設值的進程將會從因特網可用的埠集指派埠,如上面所定義。 如果為 N,使用預設的程序將會從只用於內部網路的埠組中指派埠。
HKEY_LOCAL_MACHINE   System      CurrentControlSet         Services            Rpc               Linkage                  Bind
REG_MULTI_SZ 列出預設要系結之所有 NIC 的裝置名稱(例如\Device\AMDPCN1)。 如果機碼不存在,伺服器將會系結至所有 NIC。 如果密鑰存在,除非 NICFlags 欄位設定為RPC_C_BIND_TO_ALL_NICS,否則伺服器會繫結至金鑰中指定的 NIC。 如果鍵值具有 null(“”)值,組態將會標示為無效,且所有使用 RpcServerUseProtseq*ncacn_ip_tcpncadg_ip_udp 呼叫將會失敗。

 

下表說明三個範例應用程式如何受到上表中定義的設定影響,以及使用 RpcServerUseProtseqEx 函式套用的設定也會受到影響。

在此範例中,會考慮三個假設性應用程式:

  • InternetApp:此應用程式的目的是要暴露在因特網上,且已在傳遞至 RpcServerUseProtseqEx 函式的 EndpointFlagsRPC_POLICY 成員中指定RPC_C_USE_INTERNET_PORT。
  • LocalApp:此應用程式不適合暴露在因特網上,且已在傳遞至 RpcServerUseProtseqEx 函式之 RPC_POLICY 結構 成員的 EndpointFlags 中指定RPC_C_USE_INTRANET_PORT。
  • DefaultApp:此應用程式在傳遞給 RpcServerUseProtseqEx 函式中的 RPC_POLICY 結構的 成員 EndpointFlags 中指定零。

此表格說明這些設定根據上一表格中登錄專案中所指定的值所產生的影響。 針對格式考量,會指派下列代碼:

PIA = PortsInternetAvailable 鍵值

UIP = UseInternetPorts 鍵值

為了這個範例,每個項目的埠鍵的值是5000-5100。

應用 PIA UIP 結果
InternetApp(網際網路應用程式) Y Y 使用介於 5000 到 5100 之間的埠
LocalApp Y Y 使用 5000-5100 範圍以外的埠
預設應用程式 Y Y 使用介於 5000 到 5100 之間的埠
網際網路應用程式 Y N 使用介於 5000 到 5100 之間的埠
LocalApp Y N 使用 5000-5100 以外範圍的端口
默認應用程式 Y N 使用 5000-5100 範圍以外的埠
網路應用程式 N Y 使用 5000-5100 範圍以外的埠
LocalApp N Y 使用介於 5000 到 5100 之間的埠
DefaultApp N Y 使用 5000-5100 範圍以外的埠
網路應用程式 N N 使用超出 5000-5100 範圍的端口
LocalApp N N 使用介於 5000 到 5100 之間的埠
DefaultApp N N 使用介於 5000 到 5100 之間的埠

 

RPC_POLICY

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx

RpcServerUseProtseqEx

RpcServerUseProtseqEpEx

RpcServerUseProtseqIfEx

ncacn_ip_tcp

ncadg_ip_udp