【发布时间】:2014-05-21 02:57:22
【问题描述】:
我想使用 SetProcessWorkingSetSize 函数,在 MSDN 上我看到了这个:
“句柄必须具有 PROCESS_SET_QUOTA 访问权限。有关详细信息,请参阅进程安全和访问权限。”
那么,如何设置 PROCESS_SET_QUOTA 为进程句柄?
我想编写运行具有工作集限制的可执行文件的程序,所以有一段主要代码:
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
GetStartupInfo(&si);
si.dwFlags = 0;
PROCESS_INFORMATION pi;
if (!CreateProcess(
exePath.c_str(),
cmdParametersBuffer,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi))
{
cout << "error" << endl;
}
SetProcessWorkingSetSize(pi.hProcess, 20 * 4 * 1024, 100*1024*1024);
【问题讨论】:
-
必须投反对票,网上充满了如何启用或禁用特权的示例。
-
例如来自 MSDN 的 sn-p:msdn.microsoft.com/en-us/library/windows/desktop/…
-
据我了解,此示例可以更改现有对象的权限。问题是如何设置权限来处理由 CreateProcess 创建的。所以,我在网上找不到任何答案,对不起。你能帮我解决这个问题吗?
标签: c++ winapi working-set