共用方式為


RPC 記憶體管理簡介

在 RPC 的內容中,記憶體管理牽涉到:

  • 在用戶端和伺服器執行緒的不同位址空間中,配置和解除配置模擬用戶端與伺服器之間單一概念性位址空間所需的記憶體。
  • 判斷哪些軟體元件負責管理記憶體 — 應用程式或 MIDL 產生的存根。
  • 選取影響記憶體管理的 MIDL 屬性:方向屬性、指標屬性、陣列屬性和 ACF 屬性 [ byte_count]、[ 配置]和 [ enable_allocate]。

當程式在其位址空間中呼叫函式或程式時,記憶體管理會比分散式應用程式中更直接。 為了說明,下圖描述二進位樹狀結構。 若要將此資料結構傳遞至其位址空間中的程式,程式只會將指標傳遞至樹狀結構的根目錄。

二進位樹狀結構,其指標位於樹狀結構的根目錄

用戶端/伺服器 RPC 應用程式會跨兩個不同的記憶體空間共用資料。 這些記憶體空間可能不是在同一部電腦上。 不論是哪一種方式,用戶端和伺服器都無法直接存取彼此的記憶體空間。 RPC 取決於模擬伺服器程式位址空間中用戶端程式的位址空間的能力。 它也必須從伺服器傳回資料,包括新的和已變更的資料到用戶端記憶體。

在上圖中所描述的二進位樹狀結構這類情況下,無法將指標傳遞給根節點至遠端程式。 程式或存根都必須將整個樹狀結構傳遞至伺服器的位址空間,遠端程式才能在其上操作。