阅读http://msdn.microsoft.com/en-us/library/windows/desktop/aa379560(v=vs.85).aspx,我真的不明白bInheritHandle的作用。它声明为:“一个布尔值,指定在创建新进程时是否继承返回的句柄。如果此成员为TRUE,则新进程继承句柄。”继承?这是什么意思?
答案 0 :(得分:0)
在Windows中创建内核对象(如进程,线程,事件)时,可以指定子句柄在创建新进程时是否可以由子进程继承。
假设您有一个流程A
,它调用CreateEvent来创建一个事件。只能在A
内部访问该句柄。现在A
通过CreateProcess创建新进程B
时,您可以指定B
是否也可以访问事件对象。如果要使B
访问对象,则必须在CreateProcess参数中将bIneritHandles
设置为TRUE,并且使每个对象都可以通过SECURITY_ATTRIBUTE的bInheritHandle
继承。在这种情况下,必须将带有bInheritHandle=TRUE
的SECURITY_ATTRIBUTE传递给CreateEvent调用。