核心對象

進程對象有一個進程I D 、一個基本優先權和一個退出代碼,而檔案對象則擁有一個位元組位移、一個共享模式和一個打開模式。

基本介紹

  • 中文名:核心對象
  • 表達式:有一個進程I D 、一個基本優先權
  • 套用學科:物理
  • 適用領域範圍:計算機
核心對象,概述,核心對象分類,核心對象的安全性,

核心對象

核心對象的數據結構只能被核心訪問,因此應用程式無法在記憶體中找到這些數據結構並直接改變它們的內容。Microsoft 規定了這個限制條件,目的是為了確保核心對象結構保持狀態的一致。這個限制也使Microsoft能夠在不破壞任何應用程式的情況下在這些結構中添加、 刪除和修改數據成員。
當調用一個用於創建核心對象的函式時,該函式就返回一個用於標識該對象的句柄如果將該句柄值傳遞給另一個進程中的一個執行緒,那么這另一個進程使用你的進程的句柄值所作的調用就會失敗。如果想在多個進程中共享核心對象,要通過一定的機制。
如對象句柄的繼承性,命名對象,複製對象句柄。
除了核心對象外,你的應用程式也可以使用其他類型的對象,如選單、視窗、滑鼠游標、刷子和字型等。這些對象屬於用戶對象圖形設備接口GDI)對象,而不是核心對象。
若要確定一個對象是否屬於核心對象,最容易的方法是觀察創建該對象所用的函式。

概述

作為一個軟體開發人員,你經常需要創建、打開和操作各種核心對象。系統要創建和操作若干類型的核心對象,比如存取符號對象、事件對象、檔案對象、檔案映射對象、I/O完成連線埠對象、作業對象、信箱對象、互斥對象、管道對象、進程對象、信標對象、執行緒對象和等待計時器對象等。這些對象都是通過調用函式來創建的。每個核心對象只是核心分配的一個記憶體塊,並且只能由該核心訪問。該記憶體塊是一種數據結構,它的成員負責維護該對象的各種信息。有些數據成員(如安全性描述符、使用計數等)在所有對象類型中是相同的,但大多數數據成員屬於特定的對象類型。例如,進程對象有一個進程ID、一個基本優先權和一個退出代碼,而檔案對象則擁有一個位元組位移、一個共享模式和一個打開模式。
這個限制條件確保了核心對象結構保持狀態的一致。這個限制也使核心能夠在不破壞任何應用程式的情況下在這些結構中添加、刪除和修改數據成員
如果我們不能直接改變這些數據結構,那么我們的應用程式如何才能操作這些核心對象呢?解決辦法是,提供一組函式,以便用定義得很好的方法來對這些結構進行操作。這些核心對象始終都可以通過這些函式進行訪問。該句柄可以被視為一個不透明值,你的進程中的任何執行緒都可以使用這個值。將這個句柄傳遞給核心的各個函式,這樣,系統就能知道你想操作哪個核心對象。
為了使作業系統變得更加健壯,這些句柄值是與進程密切相關的。因此,如果將該句柄值傳遞給另一個進程中的一個執行緒(使用某種形式的進程間的通信)那么這另一個進程使用你的進程的句柄值所作的調用就會失敗。

核心對象分類

如下:存取符號對象、事件對象、檔案對象、檔案映射對象、I / O完成連線埠對象、作業對象、信箱對象、互斥對象、管道對象、進程對象、信標對象、執行緒對象和等待計時器對象等。這些對象都是通過調用函式來創建的。

核心對象的安全性

核心對象可以用一個安全描述符(security descriptor,SD)來保護。安全描述符描述了誰擁有對象;哪些組和用戶被允許訪問或使用此對象;哪些組和用戶被拒絕訪問此對象。安全描述符通常在編寫伺服器應用程式的時候使用。

相關詞條

熱門詞條

聯絡我們