Celá šestá kapitola knihy se věnuje součástí jádra někdy označované jako Spráce objektů (Object Manager). Tato komponenta zavádí do jádra principy objektově orientovaného programování, zejména zapouzdření a polymorfismus. Vývojáři Windows si správně všimli, že práce s některými druhy entit (procesy, vlákna, synchronizační objekty, otevřené soubory) má jisté společné znaky. Pro všechny lze například stejným způsobem rozhodovat, jaký proces může s danou instacní pracovat a jaký ne. To samé platí i o mechanismu získávání handle, který plní roli jakýchsi přístupových karet. A mohl bych pokračovat ještě dále.
Správce objektů také dovoluje jednotlivým instancím přiřadit jméno. Pojmenované entity pak začleňuje do struktury podobné adresářovému stromu, kterou v knize nazývám jmenný prostor správce objektů. Tato struktura připomíná trochu adresářovou strukturu na Unixech. Obsahuje kořenový adresář “” a objekty reprezentující všechna virtuální i fyzická zařízení. Dá se říci, že jmenný prostor správce objektů spojuje struktury jako souborové systémy a registr do jednoho velkého stromu.
Správce objektů disponuje mnoha datovými strukturami, do kterých si ukládá různé informace potřebné pro jeho správné fungování. Většina těchto struktur je popsána právě v šesté kapitole knihy. V této kapitole také naleznete krátkou charakteristiku ukázkového programu ObjView, jehož cílem je právě tyto datové struktury prozkoumávat a zobrazovat jejich obsah v čitelné podobě. Program se opět skládá z ovladače, jehož úkolem je získávat informace od správce objektů, a jednoduché aplikace, jejímž úkolem je tato data zobrazovat.
Program byl testován na všech verzích Windows uvedených v tabulce níže. Datový struktury správce objektů se však mezi jednotlivými verzemi Windows příliš nemění (například mezi Windows XP, Windows Server 2003 a Windows Vista najdeme změn jen málo), tudíž by spektrum verzí, na kterých úspěšně poběží, mělo být daleko větší.
Systém | Verze kernelu | |
Windows XP 32bit | 5.1.2600 | |
Windows XP 64bit | 5.2.3790 | |
Windows Server 2003 R2 32bit | 5.2.3790 | |
Windows Server 2003 R2 64bit | 5.2.3790 | |
Windows Vista 32bit | 6.1.6002 | |
Windows Vista 64bit | 6.1.6002 | |
Windows 7 32bit | 6.1.7601 | |
Windows 7 64bit | 6.1.7601 |