gpt4 book ai didi

c++ - DuplicateHandle() 是否进行任何进程间通信 (IPC),如果不进行,为什么要使用目标参数?

转载 作者:可可西里 更新时间:2023-11-01 11:42:34 25 4
gpt4 key购买 nike

我正在寻找 DuplicateHandle()非常困惑。第三个和第四个参数 hTargetProcessHandle 和 lpTargetHandle 似乎暗示这个 API 函数进行某种形式的进程间通信,但我在网上阅读的内容似乎暗示(没有直接说)实际上这个函数不能与外部的任何东西通信它自己的进程的地址空间,如果你真的想说将本地进程句柄复制到另一个进程,你必须自己手动完成。

所以有人可以可怜我并明确地告诉我这个函数本身是否有任何 IPC 吗?另外,如果它不执行任何 IPC,那么这两个参数的意义何在?如果没有发送数据并且此函数的输出对其他进程不可见,怎么会有“目标”?

起初我以为我可以调用 GetCurrentProcess() 然后使用 DuplicateHandle() 将本地进程句柄复制到另一个进程,但后来我开始意识到这可能并不那么容易。

最佳答案

第三个参数hTargetProcessHandle记录为

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

这意味着句柄(下面只是一个数字值)将在目标进程中变得可用。但是,如何将此句柄放入目标进程以及在什么上下文中使用它超出了该函数的范围。另请注意,这里的“is to receive”指的是将来的点数,指的是调用的结果,所以一定是在调用结束之后。

打个比方,你想让一个 friend 来你家。为此,您正在为您的门创建第二把 key 。但这并不意味着您的 friend 现在可以打开您的门锁,因为您首先必须将它交给他们,但这是第一步。

关于c++ - DuplicateHandle() 是否进行任何进程间通信 (IPC),如果不进行,为什么要使用目标参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55135119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com