在 Windows XP Service Pack 2 和 Windows XP Tablet PC 版 2005年中修正了清單的遠端程序呼叫 (RPC)

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:838191
簡介
本文列出遠端程序呼叫 (RPC) 的問題和在 Microsoft Windows XP Service Pack 2 (SP2) 和 Windows XP Tablet PC 版 2005年中都能滿足的更新案例。

如需有關在 Windows XP SP2 中解決的問題的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
811113包含在 Windows XP Service Pack 2 的修正程式的清單
其他相關資訊
RPC 問題及更新的案例,都能滿足列,如下所示:

若要新增三個新的 RPC 介面註冊旗標的更新

這個更新,引進 RPC 下列介面註冊旗標:
  • RPC_IF_LOCAL_ONLY 旗標

    註冊這個旗標時 RPC Runtime 會拒絕遠端用戶端所做的呼叫。使用 ncadg_ *ncacn_ * 通訊協定順序的所有本機呼叫也拒絕的除外撥打市內電話,使用 ncacn_np 序列。
  • RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 旗標

    註冊這個旗標時 RPC Runtime 叫用不論呼叫安全性設定的所有呼叫已註冊的安全性回撥。沒有這個旗標 RPC 呼叫到達安全性回呼之前拒絕所有未驗證的呼叫。這個旗標運作只在註冊安全性回撥時。
  • RPC_IF_SEC_NO_CACHE 旗標

    使用這個旗標來停用安全性回撥快取特定的介面。若要執行這項動作的情況下可能會在變更安全性檢查或其中先前允許使用一個用戶端身分可能可能會被拒絕。

若要限制匿名遠端 RPC 存取更新

通常,RPC 通訊協定允許匿名的遠端存取,不會特別要求限制的存取的介面。這個更新,引進 RestrictRemoteClients DWORD 登錄項目,您可以設定來控制這個行為。此項目位於下列登錄子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC
設定 RestrictRemoteClients 登錄項目,使用下列值的根據您的情況之一:
  • 0
    此設定允許匿名存取遠端介面。
  • 1 (預設值)
    此預設設定允許存取介面只能藉由使用已驗證的連線,除非這些連線要特別要求會受此需求。

    附註這個豁免時,需要一些 DCOM 案例。
  • 2
    介面只能透過此設定允許遠端存取驗證的連線。此設定不允許驗證需求的例外狀況。

若要設定的 RPC 用戶端使用驗證與端點對應程式通訊的更新

通常,RPC 用戶端不會使用驗證,會與 RPC 端點對應程式進行通訊時。目前,嘗試藉由使用動態端點進行呼叫的 RPC 用戶端會先查詢 [RPC 端點對應程式] 中的,在伺服器上判斷連接到哪些端點。即使使用 RPC 安全性來執行 RPC 用戶端呼叫,此查詢將以匿名方式,執行。

這個更新,引進 EnableAuthEpResolution 登錄 DWORD 項目,您可以設定來控制這個行為。這個新的登錄項目,才能啟用進行呼叫已經登錄為執行 Windows XP SP2 的系統上的動態端點的 RPC 伺服器的 RPC 用戶端。用戶端電腦必須設定這個登錄機碼,使它會執行已驗證的查詢,以 RPC 端點對應程式。 EnableAuthEpResolution 登錄項目位於下列登錄子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC
設定 EnableAuthEpResolution 登錄項目,使用下列值的根據您的情況之一:
  • 0
    這個值會設定用戶端電腦不使用驗證,當它們使用端點對應程式,在伺服器上進行通訊時。
  • 1 (預設值)
    當您使用 [這個值用戶端電腦使用驗證端點對應程式要求至伺服器中如果端點對應程式查詢中的已驗證的 RPC 呼叫內容。

某些介面定義語言 (IDL) 建構會封送處理和 unmarshaled 不正確地由 RPC

在網路上與其他 Microsoft Windows 電腦使用 RPC 來進行通訊的程式可能會失敗。例如當您使用自訂的 Microsoft Visual Basic 程式兩部遠端電腦之間,以及 Visual Basic 程式使用使用者定義型別封送處理,您可能會發現某些 IDL 建構會不正確地封送處理和解封送處理。比方說您可能會遇到下列徵狀的其中一個:
  • 遠端呼叫失敗,並 RPC_X_BAD_STUB_DATA 錯誤碼傳回由 Visual Basic 程式。
  • 不正確的資料是解封送處理。

在 RPC 中存在不正確的錯誤程式碼對應

如果從 RPC 介面,就會發生的安全性回呼傳回錯誤碼 1717年,本機 RPC (LRPC) 程式碼,在 Windows 將不正確轉換這個錯誤碼為錯誤碼 5,存取遭拒。

更新 System.adm 檔案中加入 RestrictRemoteClients 選項和 EnableAuthEpResolution 選項設定

此更新會將 RPC RestrictRemoteClients 選項及 EnableAuthEpResolution 選項的設定加入 System.adm 群組原則系統管理範本。

RPC 元件無法正確處理 STATUS_UNSUCCESSFUL 狀態碼

RPC 元件在 Windows 中的不會正確地處理表示作業系統已執行的集區記憶體不足的錯誤代碼。因為這個錯誤碼不正確地處理,存在與伺服器的工作階段就會結束。因此,太早耗盡內容控點就會發生。

若要變更 RpcBindingSetAuthInfoEx 函式以不再需要 SEC_WINNT_AUTH_IDENTITY 結構,以繫結控制代碼的存留期 (Lifetime) 是有效的更新

目前的 RpcBindingSetAuthInfoEx 函式需要傳遞至函式 SEC_WINNT_AUTH_IDENTITY 結構是有效繫結控制代碼的存留期 (Lifetime)。這個結構包含密碼資訊如 [敏感的使用者] 資訊。

本更新程式會修改程式碼,以便 MSDN 需求在記憶體中保留純文字認證只適用於 RpcBindingInqAuthInfo(Ex) 函式會呼叫的案例。其他的情況下認證並不需要保持可用。在其他這些案例純文字憑證是複製,而加密。因此,使用者傳遞認證參數可能會被釋放。

自動開啟連接埠 135 Windows 防火牆 」 中,當一個 TCP 或 UDP RPC 伺服器會註冊端點對應程式的更新

除非您手動開啟連接埠 135 或連接埠 593,無法進行通訊,允許從 Windows 防火牆的觀點來看,並使用動態端點的 RPC 程式。本更新程式會修改 RPC 通訊協定,以呼叫其他的 Windows 防火牆 API。這個 API 會執行下列的程式,所允許的 Windows 防火牆,並使用動態端點:
  • 會自動開啟 TCP 連接埠 135 的 TCP 通訊協定順序
  • 會自動開啟 TCP 連接埠 593 的 HTTP 通訊協定順序

匯入功能和 RPC 功能透過 HTTP 元件從 Microsoft Windows Server 2003 的更新

在 Windows Server 2003 的 HTTP 元件上 RPC 會包含許多安全性更新和功能更新透過 Windows XP 的。此更新會併入到 Windows XP SP2 的 Windows Server 2003 中的 HTTP 元件上更新的功能和 RPC 的功能。

您會收到 「 0x800706f7 」 錯誤訊息如果內嵌的使用者定義型別是超過 16 MB 的緩衝區大小

您可能會發現您將無法傳遞使用者定義的型別跨處理序是否使用者定義型別是超過 16 MB 的緩衝區大小。當想傳遞大於 16 MB 跨處理序的 UDT 可能會收到類似下列的錯誤訊息:

0x800706f7
虛設常式接收到錯誤的資料


如需有關 Windows XP SP2 網路保護技術的功能所做的變更的詳細資訊,請造訪下列 Microsoft 網站]:
kbfixlist、 windowsxpsp2、 winxpsp2、 xpsp2

警告:本文為自動翻譯

內容

文章識別碼:838191 - 最後檢閱時間:10/26/2007 08:55:32 - 修訂: 3.4

Microsoft Windows XP Professional SP2, Microsoft Windows XP Home Edition SP2, Microsoft Windows XP Media Center Edition Service Pack 2 (SP2), Microsoft Windows XP Tablet PC Edition 2005

  • kbmt kbtshoot kberrmsg kbenv kbfix kbbug KB838191 KbMtzh
意見反應