Can you summarize the following document?
        
  控制代碼與普通指標的區別在於,指標包含的是引用物件的記憶體地址,而控制代碼則是由系統所管理的引用標識,該標識可以被系統重新定位到一個記憶體地址上。這種間接訪問物件的模式增強了系統對引用物件的控制。(參見封裝)。通俗的說就是我們呼叫控制代碼就是呼叫控制代碼所提供的服務,即控制代碼已經把它能做的操作都設定好了,我們只能在控制代碼所提供的操作範圍內進行操作,但是普通指標的操作卻多種多樣,不受限制。

  客戶獲得控制代碼時,控制代碼不僅是資源的識別符號,也被授予了對資源的特定訪問許可權。

  在上世紀80年代的作業系統(如Mac OS和Windows)的記憶體管理中,控制代碼被廣泛應用。Unix系統的檔案描述符基本上也屬於控制代碼。和其它桌面環境一樣,Windows API大量使用控制代碼來標識系統中的物件,並建立作業系統與使用者空間之間的通訊渠道。例如,桌面上的一個窗體由一個codice_1型別的控制代碼來標識。  如今,記憶體容量的增大和虛擬記憶體演算法使得更簡單的指標愈加受到青睞,而指向另一指標的那類控制代碼受到冷淡。儘管如此,許多作業系統仍然把指向私有物件的指標以及程序傳遞給客戶端的內部陣列下標稱為控制代碼。

  康奈爾大學副教授David Gries所著的《Compiler Construction for Digital Computer》. John Wiley and Sons, New York, 1971, 491 pages, ISBN 0-471-32776-X,給出如下定義:  在該書的中譯本: D.格里斯著,仲萃豪等譯:《數字計算機的編譯程式構造》,科學出版社, 1976年版,給出瞭如下翻譯:  “句”字在漢語中發gōu音時,做“查考”之義,如:句校(查考校核);句考(查考);句稽(查考;核算)。

  核心物件是記憶體中的資料結構,由作業系統核心分配,並且只能由作業系統核心訪問。核心物件的資料結構使用引用計數,計數變為0後作業系統核心就會銷燬該核心物件。安全描述符(SECURITY_ATTRIBUTES結構)描述核心物件的安全性,指出核心物件的擁有者、哪些組或使用者可以訪問此物件。作為對照,使用者物件或GDI物件(如選單、視窗、滑鼠游標等)在建立時不需要指出安全描述符。  作業系統核心中有一個全域性控制代碼表。每個程序有自己的一個控制代碼表,是一個資料結構組成的陣列,每個資料結構包含一個指向核心物件的指標、訪問掩碼、繼承標識等。控制代碼是程序控制代碼表陣列的下標。在32位系統中,控制代碼是一個32位值。64位系統中則是64位值。應用程式呼叫建立核心物件的API函式後,該API函式會返回一個控制代碼以標識作業系統核心所建立的核心物件。這個控制代碼可以由程序的任何執行緒使用。使用CloseHandle函式或者程序結束時,核心控制代碼表中相應項的計數值會被減1。  GetCurrentProcess函式返回當前程序的控制代碼,其值為-1;GetCurrentThread函式返回的控制代碼其值為-2。二者都是偽控制代碼,在程序的控制代碼表中沒有這兩項,僅代表當前程序和當前執行緒。  程序間共享核心物件有如下途徑:

  Windows作業系統提供下述API函式以訪問檔案或裝置: 檔案存取的位元組數必須是扇區尺寸的整倍數。進行讀和寫操作的地址必須扇區位置對齊(在記憶體中地址對齊到扇區容量的整倍數),可用VirtualAlloc()在記憶體中申請緩衝區,做到記憶體頁對齊(從而硬碟扇區也對齊)。
在程式設計中,控制代碼(handle)是Windows作業系統用來標識被應用程式所建立或使用的物件的整數。其本質相當於帶有引用計數的智慧指標。當一個應用程式要引用其他系統(如資料庫、作業系統)所管理的記憶體塊或物件時,可以使用控制代碼。