• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Life is Good.

            Enhance Tech and English
            隨筆 - 65, 文章 - 20, 評論 - 21, 引用 - 0
            數據加載中……

            Window核心編程 第五章 作業

            Window核心編程 第五章 作業

            概念介紹:
            作業類似于沙箱,限制進程的操作.(典型的例子是chrome,Google的瀏覽器,個人感覺chrome的沙箱和這個作業差不多,讓木馬在一個進程里面運行,不影響其他進程,提高安全性)

             

            這章后面看不大明白

            HANDLE CreateJobObject(PSECURITY_ATTRIBUTES psa,PCTSTR pszName);
            第一個參數是安全性,最后一個參數給句柄命名,使他能夠通過OpenJobObject訪問

            HANDLE OpenJobObject(DWORD dwDesiredAccess,BOOL bInheritHandle,PCTSTR pszName);

            調用CloseHandle關閉作業后實際上并不中止作業內的所有的進程,只是作了刪除標記,只有當作業中的所有進程中止后,才撤銷作業,注意,關閉作業句柄后雖然作業存在,但是作業將無法訪問

            通過SetInformationJobObject可以給作業加上不同類型的限制:
            1.基本限制,防止作業中的進程壟斷系統資源;
            2.基本UI限制,防止作業中的進程改變用戶界面;
            3.安全性限制,防止作業中的進程訪問保密資源(文件,注冊表等等);

            BOOL SetInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,PVOID pJobObjectInformation,DWORD cbJobObjectInformationLength);

            第一個參數表示要限制的作業,第二個參數是個枚舉,指明要使用限制的類型,第三個參數是包含限制設置值的數據結構的地址,第四個指明結構大小


            進程放入作業:
            BOOL AssignProcessToJobObject(HANDLE hJob,HANDLE hProcess);
            注意:一旦進程成為一個作業的部分,將不能轉到另外一個作業。當作業中的進程生成子進程的時候,子進程自動成為父作業的部分,不過可以通過2個方法改變:
            1. 打開JOBOBJECT_BASIC_LIMIT_INFORMATION的LimitFlags中的JOB_OBJECT_DREAKAWAY_OK標 志,告訴系統,新生成的進程可以在作業外部運行,但必須用CREATE_BREAKAWAY_FROM_JOB標志來調用CreateProcess

            打開JOBOBJECT_BASIC_LIMIT_INFORMATION的limitFlags中的JOB_OBJECT_SILENT_BREAKAWAY_OK標志,告訴系統,新生成的進程不應該是作業的組成部分

            撤銷作業的進程:
            BOOL TerminateJobObject(HANDLE jJob,UINT uExitCode);


            獲取統計信息:
            調用QueryInformationJobObject(),第二個參數傳遞JobObjectBasicAccountingInformation,并傳遞JOBOBJECT_BASIC_ACCOUNTING_INFORMATION結構的地址

            作業通知信息:
            JOBOBJECT_ASSOCIATE_COMPLETION_PORT joacp;
            joacp.CompletionKey=1;
            joacp.CompletionPort=hIOCP;

            SetInformationJobObject(hJob,JobObjectAssociateCompletionPortInformation,&joacp,sizeof(jaocp));


            posted on 2011-03-03 16:43 Mike Song 閱讀(194) 評論(0)  編輯 收藏 引用

            国内精品免费久久影院| 狠狠综合久久综合中文88| 国产99久久久久久免费看| 秋霞久久国产精品电影院| 久久精品国产福利国产琪琪| 久久SE精品一区二区| 国产精品美女久久久久网| 久久精品国产99久久香蕉| 久久婷婷午色综合夜啪| 亚洲综合久久综合激情久久| 亚洲综合伊人久久综合| 精品99久久aaa一级毛片| 久久精品中文字幕大胸| 婷婷综合久久狠狠色99h| 久久久久久久国产免费看| 久久精品国产亚洲AV电影| 亚洲精品综合久久| 国产精品久久久久久搜索| 亚洲国产成人久久综合碰| 国产精品欧美久久久天天影视| 精品久久久久久久久免费影院| 亚洲国产成人精品女人久久久 | 亚洲人成无码www久久久| 国产亚洲美女精品久久久久狼| 久久久久亚洲av无码专区喷水 | MM131亚洲国产美女久久| 久久w5ww成w人免费| 久久久久久国产a免费观看黄色大片 | 色婷婷综合久久久中文字幕| 久久久SS麻豆欧美国产日韩| 久久精品亚洲福利| 热99re久久国超精品首页| 99久久久精品免费观看国产| 亚洲色大成网站www久久九| 久久久精品国产| 久久久噜噜噜久久中文字幕色伊伊| 色诱久久av| 久久久噜噜噜久久中文字幕色伊伊 | 香港aa三级久久三级| 狠狠色婷婷综合天天久久丁香| 97久久精品午夜一区二区|