首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DuplicateHandle()是否执行任何进程间通信(IPC)?如果不是,为什么以params为目标?

DuplicateHandle()是否执行任何进程间通信(IPC)?如果不是,为什么以params为目标?
EN

Stack Overflow用户
提问于 2019-03-13 13:42:05
回答 1查看 102关注 0票数 1

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2019-03-13 14:46:54

第三个参数hTargetProcessHandle被记录为

代码语言:javascript
运行
复制
A handle to the process that is to receive the duplicated handle.

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

打个比方,你想允许一个朋友在你的房子里。为此,您将创建门的第二把钥匙。这并不意味着你的朋友现在可以打开你的门,因为你首先必须把门给他们,但这是第一步。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55135119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档