2009-05-04 31 views
1

我已經寫了一個小的功能,將使用CreateProcessWithLogonW最大CreateProcessWithLogonW和NetUserAdd

僞代碼加載 可執行的多個實例:

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個實例 - 其他實例失敗 -

是否可以同時啓動 進程的用戶數限制?

感謝

回答

1

documentation for CreateProcessWithLogonW

還有就是可以通過 創建此功能,同時運行 子進程的數量是有限的。例如,在Windows XP上,此限制 是MAXIMUM_WAIT_OBJECTS*4。在Windows 2000上,此限制爲 MAXIMUM_WAIT_OBJECTS。但是,由於系統範圍配額 的限制,您可能無法創建多個 進程。

我測試過在Windows XP上的MAXIMUM_WAIT_OBJECTS,它是64,所以也許你正在達到'系統範圍的配額限制'。

This post建議使用LogonUserCreateProcessAsUser的組合來代替以避免碰到這些限制。