核心事務管理器 (KTM) 是Windows作業系統從Windows Vista與Windows Server 2008引進的核心對象級的對檔案資源和註冊表資源列入了原子事務管理範疇。
基本介紹
- 中文名:核心事務管理器
- 縮寫:KTM
- 領域:計算機
簡介,事務,Windows對象管理,通用日誌檔案系統,
簡介
事務引擎運行在核心態下,允許核心態資源、用戶態資源、以及分布資源的事務管理。
KTM用於實現事務型的NTFS檔案系統(TxF)與事務型註冊表(TxR)。KTM依賴於Common Log File System(CLFS)。CLFS是一個通用的日誌檔案子系統,被設計用於創建數據與事件的日誌檔案。
事務
一個事務是一個核心對象。事務處於活著狀態(alive),只要存在引用它的句柄。事務是活動的,如果它還未被提交或卷回。如果一個事務的所有句柄都已關閉但還沒有被提交或卷回,那么這個事務將被卷回。
事務函式:
- CommitTransaction:請求特定的事物被提交。
- CommitTransactionAsync:請求特定的事物被提交。函式異步返回
- CreateTransaction:創建一個新的事務對象
- GetTransactionInformation:獲取特定事物的指定信息
- OpenTransaction:打開一個事務對象
- RollbackTransaction:請求特定事務被卷回
- RollbackTransactionAsync:請求特定事務被卷回,函式異步返回
- SetTransactionInformation:設定特定事物的指定信息。
Windows對象管理
對象管理是Windows Executive的一個子系統實現,用於管理Windows資源。 資源包括物理設備、檔案、檔案目錄、註冊表條目、正在運行的進程等等。所有子系統訪問資源都必須通過對象管理子系統。
Windows NT作業系統體系結構中,對象管理子系統管理所有的資源。資源被表示為對象。對象管理子系統保持著對每個對象的引用計數。任何訪問對象的系統調用都必須通過對象管理子系統。Windows對象可分為核心對象、用戶對象、GDI對象:
- 用戶對象(User interface object):支持視窗管理。每個對象僅有一個句柄,句柄不能複製或繼承,不能引用其他用戶會話中的進程的用戶句柄。任何進程只要有對某個用戶句柄的安全訪問許可權,即可以訪問該用戶對象,即用戶對象在當前會話下是全局的。一個進程最多有 65536 個用戶對象句柄。用戶對象包括:快捷鍵表HACCEL、插入點HCaret、滑鼠指針HCURSOR、DDE 會話、視窗鉤子HOOK、圖示 HICON、選單 HMENU、視窗 HWND、視窗位置Window position。
- GDI 對象:支持圖形。每個對象僅有一個句柄,句柄為進程私有。一個進程最多有 65536 個 GDI 對象句柄。GDI 對象包括:點陣圖 HBITMAP、畫刷 HBRUSH、設備環境HDC、增強型圖元檔案(EMF)、EMF 設備環境、字型 HFONT、記憶體 DC、圖元檔案Metafile、圖元檔案 DC、調色板 HPALETTE、畫筆 HPEN、區域(Region)HRGN。
對象可分為核心對象(Kernel objects)與執行對象(Executive objects)。核心對象表示一些基本資源,如物理設備、同步服務等等。用戶態的程式不能訪問核心對象。用戶態的系統服務與應用程式使用執行對象,這是Windows Executive對外暴露的對象,用來封裝一個或多個核心對象。執行對象還用於實現 NT 子系統或 POSIX 子系統的一些功能。
通用日誌檔案系統
通用日誌檔案系統(Common Log File System,縮寫CLFS)是一個通用目的的日誌檔案系統,它可以從核心模式或用戶模式的應用程式訪問,用以構建一個高性能的事務日誌。它自Windows Server 2003R2引入,並包含在之後版本的Windows作業系統中。CLFS可以用於數據日誌與事件日誌。CLFS已被TxF和TxR用於在提交事務前存儲事務狀態的變更。