首页 > 代码库 > SetHandleInformation设置内核对象标志
SetHandleInformation设置内核对象标志
当父进程创建子进程时,子进程将继承父进程的内核对象。这时如果要控制子进程使用父进程的内核对象。可以使用SetHandleInformation设置。BOOL SetHandleInformation(HANDLE hObject, DWORD dwMask, DWORD dwFlags);改变句柄的标志,目前可改变的标志有两种#define HANDLE_FLAG_INHERIT 0x00000001 // 继承标志#define HANDLE_FLAG_PROJECT_FROM_CLOSE 0x00000001 // 保护不允许关闭句柄标志例如// 设置句柄值可继承:SetHandleInformation(hObject, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT);// 设置句柄不可继承:SetHandleInformation(hObject, HANDLE_FLAG_INHERIT, 0);// 设置句柄值不可关闭,受保护:SetHandleInformation(hObject, HANDLE_FLAG_PROJECT_FROM_CLOSE, HANDLE_FLAG_PROJECT_FROM_CLOSE);// 设置句柄值可关闭,不受保护:SetHandleInformation(hObject, HANDLE_FLAG_PROJECT_FROM_CLOSE, 0);1、关于设置句柄为不可继承的用法,在创建一个回路的socket时使用,如果可以子进程可以继承的话,会出现多个回路的socket,通讯会受影响2、关于设置句柄不可以关闭,受保护时,父进程创建子进程,子进程再创建孙进程时,子进程把句柄关闭,导致孙进程无法继续使用,这时候要保护
SetHandleInformation设置内核对象标志
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。