c - 最大 CreateProcessWithLogonW 和 NetUserAdd

标签 c windows winapi

我写了一个小函数,可以加载一个的多个实例 使用 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 个实例 - 其他实例失败 -

是否有可以启动的用户数量限制 同时处理 ?

谢谢

最佳答案

来自documentation for CreateProcessWithLogonW :

There is a limit to the number of child processes that can be created by this function and run simultaneously. For example, on Windows XP, this limit is MAXIMUM_WAIT_OBJECTS*4. On Windows 2000, this limit is MAXIMUM_WAIT_OBJECTS. However, you may not be able to create this many processes due to system-wide quota limits.

我已经在 Windows XP 上测试了 MAXIMUM_WAIT_OBJECTS,它是 64,所以你可能达到了“系统范围的配额限制”。

This post建议使用 LogonUser 的组合和 CreateProcessAsUser而不是避免达到这些限制。

关于c - 最大 CreateProcessWithLogonW 和 NetUserAdd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820794/

相关文章:

winapi - 如何在MFC中创建可调整大小的CDialog?

vba - 在 VBA 中监听使用 WinAPI 创建的控件中的 Windows 消息

c++ - 随机排列单链表的前 N ​​个元素

c - 父子之间发消息——为什么没有死锁?

c - 将指针作为参数传递给其他 .c 文件

windows - NASM ReadConsoleA 或 WriteConsoleA 缓冲区调试问题

c++ - 在 C/C++ 中拆分输出以进行重定向

python - 文件编码相同代码Windows、Linux

c++ - 在 Linux 上编程 C++ 与在 Windows 中的 Linux VM 上编程 C++

.net - 用于触发墙纸随机播放的 Windows API