在阅读http://msdn.microsoft.com/en-us/library/windows/desktop/aa379560(v=vs.85).aspx时,我并不真正理解bInheritHandle的角色。它被声明为:“一个布尔值,指定在创建新进程时是否继承返回的句柄。如果该成员为TRUE,则新进程继承该句柄。”继承?这是什么意思?
发布于 2019-09-24 10:48:52
在Windows中创建内核对象(如进程、线程、事件)时,可以指定子进程在创建新进程时是否可以继承对象句柄。假设您有一个流程A,它调用CreateEvent来创建一个事件。该句柄只能在A内访问。现在,当A通过CreateProcess创建新的流程B时,您可以指定B是否也可以访问事件对象。如果想让B访问对象,必须在CreateProcess参数中将bIneritHandles设置为TRUE,和使每个对象都可以通过SECURITY_ATTRIBUTE的bInheritHandle继承。在这种情况下,您必须将带有bInheritHandle=TRUE的SECURITY_ATTRIBUTE传递给CreateEvent调用。
https://stackoverflow.com/questions/10467451
复制相似问题