讀Windows核心編程-5-做業

做業(Job)

有時候須要把一些進程集中管理,如終止一個進程以及它產生的子進程,但因爲Windows並無維護進程間父子關係,因此除非進程自己以某種方式記錄這些信息,不然很難作到管理這種父子進程樹。而做業(job)剛好能解決這一問題。 安全

Job就像是一個"沙箱"或者進程容器,不只能將多個進程放在一塊兒管理,還能對其包含的進程施加額外的限制,例如:做業中的進程能使用的CPU時間,是否能註銷,是否能方位用戶對象等。 函數

相關函數

IsProcessInJob: 判斷進程是否屬於某個已有的Job spa

CreateJobObject:建立做業 orm

SetInformationJobObject:對做業及其中的進程施加限制,可能的安全限制見下表 對象

AssignProcessToJobObject:將進程放入指定的Job,注意,已經在某個Job中的進程不能從新制定,也不能將它從該Job中移除,這樣的安全機制能保證進程不能脫離對其施加的安全限制。 進程

CloseHandle關閉Job句柄時不會致使Job中的進程結束,只是Job對象添加了刪除標誌,Job會等待其中全部的進程結束,才被刪除。 資源

 

SetInformationJobObject it

限制類型io

參數table

描述

基本限額

JobObjectBasicLimitInformation

防止Job中的進程獨佔系統資源

擴展基本限額

JobObjectExtendedLimitInformation

同上

基本的UI限制

JobObjectBasicUIRestrications

防止進程更改用戶界面

安全限額

JobObjectSecurityLimitInformation

防止進程訪問安全資源(文件,註冊表)

 

TerminatebObject:終止job中全部的進程,並設置同一返回值

QueryInformationJobObject:查詢job中的進程信息以及相應的限制

相關文章
相關標籤/搜索