小编And*_*ash的帖子

如何将重复的句柄传递给子进程?

我使用 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)

c++ winapi

2
推荐指数
1
解决办法
2241
查看次数

标签 统计

c++ ×1

winapi ×1