高階本地過程呼叫 (ALPC)


高階本地過程呼叫 (ALPC) 是一種訊息傳遞機制。伺服器程序釋出一個全域性可見的連線埠物件。當客戶端需要子系統或服務的服務時,它會開啟伺服器連線埠物件的控制代碼,並向埠傳送連線請求。伺服器建立一個通道,並向客戶端返回一個控制代碼。該通道由一對私有通訊埠組成:一個用於客戶端到伺服器的訊息,另一個用於伺服器到客戶端的訊息。通訊通道支援回撥機制,因此客戶端和伺服器可以在通常期望回覆時接受請求。建立 ALPC 通道時,會選擇三種訊息傳遞技術之一:

  • 第一種技術適用於小型到中型訊息(最多 63 KB)。在這種情況下,埠的訊息佇列用作中間儲存,訊息從一個程序複製到另一個程序。

  • 第二種技術適用於大型訊息。在這種情況下,為通道建立一個共享記憶體段物件。透過埠的訊息佇列傳送的訊息包含指向該段物件的指標和大小資訊。這避免了複製大型訊息的需要。傳送方將資料放入共享段,接收方直接檢視它們。

  • 第三種技術使用直接讀寫程序地址空間的 API。ALPC 提供函式和同步機制,以便伺服器可以訪問客戶端中的資料。ALPC 通常由 RPC 用於在特定情況下實現更高的效能。

Win32 視窗管理器使用其自身的某種訊息傳遞方式,這獨立於執行 ALPC 功能。

更新於:2019年10月16日

2K+ 閱讀量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.