[英]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.