我写了一个小函数,它将加载一个多个实例 使用CreateProcessWithLogonW
执行伪代码:
for ( i=0;i<100;i++)
{
sprintf(user,"user%i",i);
sprintf(pass,"pass%i",i);
if(NetUserGetInfo(user,pass)==NOT_FOUND) { NetUserAdd(user,pass); }
aaProcessCreateWithLogin("prog.exe",user,pass);
}
它工作正常,但它限制为32个实例 - 其他实例失败 -
可以启动的用户数量是否有限制 过程同时进行?
由于
灰
答案 0 :(得分:1)
来自documentation for CreateProcessWithLogonW:
数量有限 可以创建的子进程 此功能并同时运行。 例如,在Windows XP上,此限制 是
MAXIMUM_WAIT_OBJECTS*4
。在Windows上 2000年,这个限制是MAXIMUM_WAIT_OBJECTS
。但是,你可以 无法创造这么多 系统范围配额导致的流程 限制。
我在Windows XP上测试过MAXIMUM_WAIT_OBJECTS
它是64,所以也许你正在达到'系统级配额限制'。
This post建议使用LogonUser和CreateProcessAsUser的组合来避免达到这些限制。