2014-01-05 14 views
0

創建我使用下面的代碼與其他用戶的安全權限創建過程:刪除PROCESS_TERMINATE訪問,通過CreateProcessWithLogonW

CreateProcessWithLogonW(
    Username, 
    Domain ? Domain : L".", 
    Password, 
    LOGON_WITH_PROFILE, 
    ApplicationName, 
    CommandLine, 
    CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT, 
    Environment, 
    CurrentDirectory, 
    &StartupInfo, 
    ProcessInfo); 

但這個過程可以用TerminateProcess的殺滅作用調用進程。我讀過,我必須從此過程中刪除PROCESS_TERMINATE訪問權限,但我無法找到如何執行此操作的信息。

回答

2

產生的進程句柄在PROCESS_INFORMATION結構中返回。將它傳遞到GetSecurityInfo()來檢索進程的SACL/DACL,構建一個拒絕PROCESS_TERMINATE的新進程,然後調用SetSecurityInfo()來應用它。

+0

謝謝你的回答。說實話,我正在尋找更詳細的例子。 – kjen93

+0

@ kjen93,如果您在回答中查找更多詳細信息,則應修改問題以包含您嘗試過的代碼並請求更多幫助。 –