我使用 DuplicateHandle 向子进程共享一个内核对象,我需要将该对象的句柄传输给该进程,该怎么做?
int main() {
STARTUPINFO cif;
ZeroMemory(&cif, sizeof(STARTUPINFO));
PROCESS_INFORMATION pi;
CreateProcess("sp.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL,
&cif, &pi);
HANDLE Semaphore = CreateSemaphore(NULL, 0, 1, NULL);
DuplicateHandle(GetCurrentProcess(), Semaphore, pi.hProcess, NULL,
DUPLICATE_SAME_ACCESS, FALSE, 0);
WaitForSingleObject(Semaphore, INFINITE);
cout << "Test3: access granted";
CloseHandle(pi.hProcess);
CloseHandle(Semaphore);
}
Run Code Online (Sandbox Code Playgroud)