簡體   English   中英

DuplicateHandle()是否進行任何進程間通信(IPC),如果不是,為什么要目標參數?

[英]Does DuplicateHandle() do any interprocess communication (IPC) and if not why target params?

我發現DuplicateHandle()非常令人困惑。 第三個和第四個參數hTargetProcessHandle和lpTargetHandle似乎暗示此API函數進行某種形式的進程間通信,但是我在網上閱讀的內容似乎暗示(不直接說),實際上該函數無法與外部函數進行通信。它自己的進程的地址空間,如果您確實想說將本地進程句柄復制到另一個進程,則必須自己手動進行。

那么有人可以請我憐憫我,並明確地告訴我這個功能是否是IPC本身? 另外,如果它不執行任何IPC,那么這兩個參數的意義是什么? 如果沒有數據發送並且此功能的輸出對其他進程不可見,那么如何有一個“目標”?

起初我以為可以先調用GetCurrentProcess(),然后使用DuplicateHandle()將本地進程句柄復制到另一個進程,但是后來我開始意識到這可能並不容易。

第三個參數hTargetProcessHandle記錄為

A handle to the process that is to receive the duplicated handle.

這意味着該句柄(下面只是一個數字)將在目標進程中可用。 但是,如何將此句柄帶入目標進程以及在何種上下文中使用它,超出了該函數的范圍。 另請注意,將來“要接收”點是指呼叫的結果,因此必須在呼叫結束之后。

打個比方,您想允許一個朋友在家中。 為此,您正在創建門的第二把鑰匙。 但這並不意味着您的朋友現在就可以打開門,因為您首先必須將門交給他們,但這是第一步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM