2

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

4

1 回答 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 回答