SetHandleInformation是一个函数,可控制哪些子进程能继承内核对象句柄,可调用SetHandleInformation函数改变内核对象句柄的继承标志。
SetHandleInformation是一个函数,可控制哪些子进程能继承内核对象句柄,可调用SetHandleInformation函数改变内核对象句柄的继承标志。
SetHandleInformation函数:
控制哪些子进程能继承内核对象句柄,可调用SetHandleInformation函数改变内核对象句柄的继承标志。
BOOL WINAPI SetHandleInformation(
_In_ HANDLE hObject,
_In_ DWORD dwMask,
_In_ DWORD dwFlags
);
第一个参数hObject标识了一个有效句柄。
第二个参数dwMask告诉函数我们想更改哪个或者哪些标志:
1 HANDLE_FLAG_INHERIT 用CreateProcess(bInheritHandle设为TRUE)创建出来的子进程可以继承对象句柄
2HANDLE_FLAG_PROTECT_FROM_CLOSE 无法调用CloseHandle关闭对象句柄
第三个参数dwFlags指出希望把标志设成什么。
例如,要打开一个内核对象句柄的继承标志,可以像下面这样写:
SetHandleInformation( hObj, HANDLE_FLAG_INHERIT ,HANDLE_FLAG_INHERIT );
要关闭这个标志,可以像下面这样写:
SetHandleInformation( hObj , HANDLE_FLAG_INHERIT , 0)