首页 > 编程知识 正文

内核对象 复制对象句柄 DuplicateHandle 跨进程边界共享内核对象

时间:2023-05-04 14:33:31 阅读:247272 作者:802

Windows API List
System Services
Windows System Information
Handles and Objects
Handles and Object Reference
Handle and Object Functions
DuplicateHandle

// 跨进程边界共享内核对象;
// 原理:获得一个进程的句柄表的一个记录项,然后在另外一个进程的句柄表中创建这个记录项的一个副本

BOOL WINAPI DuplicateHandle( _In_ HANDLE hSourceProcessHandle, // 源进程内核对象 _In_ HANDLE hSourceHandle, // 源任何类型内核对象;不能与调用DuplicateHandle函数的进程相关,必须与hSourceProcessHandle句柄所标识的进程相关(除非hSourceProcessHandle就是调用DuplicateHandle函数的进程,即当前进程) _In_ HANDLE hTargetProcessHandle, // 目标进程内核对象 _Out_ LPHANDLE lpTargetHandle, // HANDLE变量的地址,用来接收复制得到的HANDLE值;不能调用CloseHandle(除非hTargetProcessHandle就是调用DuplicateHandle函数的进程,即当前进程) _In_ DWORD dwDesiredAccess, _In_ BOOL bInheritHandle, _In_ DWORD dwOptions);

dwOptions:0 或 DUPLICATE_CLOSE_SOURCE 和 DUPLICATE_SAME_ACCESS 的组合;DUPLICATE_CLOSE_SOURCE 表明会关闭源进程中的句柄;DUPLICATE_SAME_ACCESS 表明目标句柄拥有与源进程句柄一样的访问掩码并且忽略dwDesiredAccess参数。

参考:windows核心编程(第5版) 3.3.6 复制对象句柄

docker部署可执行jar包的思路与完整步骤

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。