关于结构SECURITY_ATTRIBUTES

时间:2012-05-06 01:45:43

标签: windows handle inheritance

阅读http://msdn.microsoft.com/en-us/library/windows/desktop/aa379560(v=vs.85).aspx,我真的不明白bInheritHandle的作用。它声明为:“一个布尔值,指定在创建新进程时是否继承返回的句柄。如果此成员为TRUE,则新进程继承句柄。”继承?这是什么意思?

1 个答案:

答案 0 :(得分:0)

在Windows中创建内核对象(如进程,线程,事件)时,可以指定子句柄在创建新进程时是否可以由子进程继承。 假设您有一个流程A,它调用CreateEvent来创建一个事件。只能在A内部访问该句柄。现在A通过CreateProcess创建新进程B时,您可以指定B是否也可以访问事件对象。如果要使B访问对象,则必须在CreateProcess参数中将bIneritHandles设置为TRUE,并且使每个对象都可以通过SECURITY_ATTRIBUTE的bInheritHandle继承。在这种情况下,必须将带有bInheritHandle=TRUE的SECURITY_ATTRIBUTE传递给CreateEvent调用。