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

            ……

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

            久久噜噜久久久精品66| 亚洲精品无码久久久久sm| 国产午夜精品久久久久九九电影| 色青青草原桃花久久综合| AA级片免费看视频久久| 无码人妻久久一区二区三区免费丨| 亚洲中文精品久久久久久不卡| 久久九九免费高清视频| 伊人久久综在合线亚洲2019| 国产精品久久精品| 国内精品伊人久久久久| 狠狠色丁香久久综合婷婷| 亚州日韩精品专区久久久| 亚洲国产日韩欧美久久| 亚洲精品乱码久久久久久蜜桃| 久久99免费视频| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 久久久久亚洲AV综合波多野结衣| 久久久久久人妻无码| 久久精品中文闷骚内射| 久久99热这里只有精品66| 久久久久99这里有精品10| 国产亚洲美女精品久久久| 久久精品成人免费网站| 久久亚洲精品国产精品| 97久久国产露脸精品国产| 久久久国产视频| 久久这里有精品| 久久SE精品一区二区| 国产精品免费福利久久| 色综合色天天久久婷婷基地| 色综合久久天天综线观看| 久久精品国产一区二区 | 亚洲日韩欧美一区久久久久我| 久久国产视屏| 日韩精品无码久久一区二区三| 人妻精品久久久久中文字幕| 午夜精品久久久久久久无码| 久久无码AV中文出轨人妻| 亚洲AV无码一区东京热久久| 久久精品无码一区二区无码 |