• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            Windows NT文件系統內幕讀書筆記(一)
            2008-11-22 11:29

            “在WINDOWS NT執行體的內核組件創建的所有對象可以用兩種方式引用,一種是使用當創建或者打開的時候NT對象管理器返回的對象句柄,一種是使用對象的指針。注意通常由內核組件分配的對象的指針在所有執行環境中都有效,因為對象引用的虛擬地址將在核心虛擬地址空間。但是,前面提到的,對象的句柄是特定于得到這個句柄的線程的執行上下文的,因此只有在那個特定在執行上下文中有效。

            ??????? 記住每個NT對象管理器創建的對象都有一個相關的引用計數器。當對象最初創建的時候這個引用計數器設置為1.每當一個內核組件請求對象管理器增加引用計數器的時候引用計數器增加,通常是調用ObReferenceObjectByHandle(在DDK中描述)。引用計數器當在對象句柄上執行關閉操作的時候遞減。內核驅動使用ZwClose系統服務調用來關閉系統創建的任何對象句柄。引用計數器在內核組件調用 ObDereferenceObject()的時候也遞減,這個函數要求傳遞對象的指針。當對象計數器變成0的時候,NT對象管理器將會刪除這個對象。

            在這本書的進程中,你會經常發現我們打開一個對象,收到一個句柄,然后得到這個對象的指針,然后藏到某個地方(可能在全局內存中),引用這個對象,關閉句柄。這給我們兩個好處:

            1、通過保存對象的指針,我們能夠在不是原來的打開對象的線程上下文中重新得到相同對象的句柄,你會在這本書后面發現這樣的例子。

            2、通過引用這個對象和關閉原來的句柄,我們確保對象不會被刪除(知道我們最后一次解除引用),我們還確保一旦我們最后解除引用,對象將會自動被刪除。”

            ……

            “你初始化的例程將在系統進程上下文中被調用:這一點尤其重要要記住,如果你打開或者創建任何對象得到一個句柄,任何這樣的句柄只是在這個系統進程的上下文中才有效。為了能夠在其他進程的上下文中使用這些句柄,你不得不使用這章中前面講的方法,你可以得到這個對象的指針然后需要的時候再在其他線程上下文中得到對象的句柄。”

            无码8090精品久久一区| 久久99国产精品久久久| 欧洲成人午夜精品无码区久久| 亚洲国产二区三区久久| 久久久国产精品网站| 国产精品久久国产精品99盘| 久久中文娱乐网| 精品无码久久久久久国产| 精品水蜜桃久久久久久久| 亚洲欧洲中文日韩久久AV乱码| 亚洲综合久久久| 激情伊人五月天久久综合| 久久这里只有精品久久| 久久最新免费视频| 日韩精品无码久久久久久| 亚洲国产成人久久综合一| 久久成人国产精品一区二区| 伊人久久大香线蕉成人| 久久99精品久久久久久久久久| 久久国产精品-久久精品| 亚洲欧美国产精品专区久久| 无码久久精品国产亚洲Av影片| 99国产欧美久久久精品蜜芽| 久久亚洲精品无码播放| 久久久亚洲欧洲日产国码aⅴ| 亚洲国产成人久久综合碰碰动漫3d| 久久久久国产精品嫩草影院 | 久久精品免费全国观看国产| 久久不见久久见免费视频7| 国内精品欧美久久精品| 色欲久久久天天天综合网精品| 91久久九九无码成人网站| 精品伊人久久大线蕉色首页| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久青青草原精品国产不卡| 久久精品国产色蜜蜜麻豆| 国产成人无码精品久久久免费| 亚洲国产欧美国产综合久久| 久久天天躁狠狠躁夜夜2020| 久久精品国产亚洲网站| 无码超乳爆乳中文字幕久久|