看了http://msdn.microsoft.com/en-us/library/windows/desktop/aa379560(v=vs.85).aspx,我不是很了解bInheritHandle的作用。其表述为:“一个布尔值,指定创建新进程时是否继承返回的句柄。如果此成员为 TRUE,则新进程继承句柄。” 继承?这是什么意思?
问问题
177 次
1 回答
0
在 Windows 中创建内核对象(如进程、线程、事件)时,您可以指定子进程在创建新进程时是否可以继承对象句柄。假设您有一个流程A
,它调用 CreateEvent 来创建一个事件。手柄只能在内部使用A
。现在,当通过 CreateProcessA
创建新进程时B
,您可以指定是否B
也可以访问事件对象。如果要B
访问该对象,则必须bIneritHandles
在 CreateProcess 参数中设置为 TRUE ,并使每个对象都可以通过 SECURITY_ATTRIBUTE 继承bInheritHandle
。在这种情况下,您必须将 SECURITY_ATTRIBUTE 传递bInheritHandle=TRUE
给 CreateEvent 调用。
于 2019-09-24T02:48:52.370 回答