如何删除Windows作业对象的内存限制?
我已经为使用作业对象的进程配置了内存限制。现在我想取消这个限制。我假设我必须将如何删除Windows作业对象的内存限制?,windows,winapi,Windows,Winapi,我已经为使用作业对象的进程配置了内存限制。现在我想取消这个限制。我假设我必须将JOBOBJECT\u EXTENDED\u LIMIT\u INFORMATION.ProcessMemoryLimit设置为特定值,然后调用SetInformationJobObject。我应该使用什么值 由于更改流程作业分配似乎有问题,因此不可能简单地脱离作业(至少在Windows 7上是这样) 下面是我正在使用的一些C代码,但它似乎对问题无关紧要: var limitInfo = new NativeMetho
JOBOBJECT\u EXTENDED\u LIMIT\u INFORMATION.ProcessMemoryLimit
设置为特定值,然后调用SetInformationJobObject
。我应该使用什么值
由于更改流程作业分配似乎有问题,因此不可能简单地脱离作业(至少在Windows 7上是这样)
下面是我正在使用的一些C代码,但它似乎对问题无关紧要:
var limitInfo = new NativeMethods.JOBOBJECT_EXTENDED_LIMIT_INFORMATION()
{
BasicLimitInformation = new NativeMethods.JOBOBJECT_BASIC_LIMIT_INFORMATION()
{
LimitFlags = NativeMethods.LimitFlags.JOB_OBJECT_LIMIT_PROCESS_MEMORY,
},
ProcessMemoryLimit = (UIntPtr)maxProcessMemoryBytes,
};
if (!NativeMethods.SetInformationJobObject(jobHandle, NativeMethods.JOBOBJECTINFOCLASS.JobObjectExtendedLimitInformation, (IntPtr)(&limitInfo), (uint)structSize))
throw new Win32Exception();
0
似乎被操作系统拒绝,-1
导致:
-4KB
作为限制。验证明显不足。第一次调用以获取当前限制和标志,从中删除作业\u对象\u限制\u进程\u内存
标志,最后使用此数据调用以移除进程内存限制。第一次调用以获取当前限制和标志,从中删除JOB\u OBJECT\u LIMIT\u PROCESS\u MEMORY
标志,最后使用此数据调用以删除进程内存限制。我已为我的进程配置了内存限制
-您是如何配置的-正是这样,然后更改限制remove@RbMm我不知道你在说什么。我希望极限存在,但只存在一段时间。如果这就是你的意思,我不能简单地不设置任何限制。但是你设置了限制还是没有?是的,我这样做是有意的。仅仅删除JOB\u OBJECT\u limit\u PROCESS\u MEMORY
标志就够了吗?我已经为我的进程配置了内存限制
-你是如何配置的-就是这样,然后更改限制,相反remove@RbMm我不知道你在说什么。我希望极限存在,但只存在一段时间。如果这就是你的意思,我不能简单地不设置任何限制。但是你设置了限制还是没有?是的,我设置了,这是有意的。仅仅删除作业\u对象\u限制\u进程\u内存标志就够了吗?