我们有两个服务:一个是 32 位的(process1),另一个是 64 位的(process2)。我们有 process1 用来检查 process2 是否正在运行的代码: HANDLE hProcess; RESET_WIN_ERRNO;
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, ProcessId);
if (hProcess == NULL) {
os_SetWinErr(err_code);
return FALSE;
}
CloseHandle(hProcess);
return TRUE;
此代码在 Windows server 2003 中运行良好,但在 Windows server 2008 中不起作用。有什么想法吗?
我阅读了有关 Session0 的有关 win2008 中引入的服务的信息,但在我们的例子中,两者都是服务(除非 Microsoft 非常讨厌 java 将其移至 Session1),因此不应该有任何访问问题。
我找到了这个线程:http ://social.msdn.microsoft.com/forums/en-US/winserver2008appcompatabilityandcertification/thread/c7d7e3fe-f8e5-49c3-a16f-8e3dec5e8cf8/ 它指出 32 位进程无法访问 64 位进程了。在这里可以做什么?