Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Operační systém založený na systému Microsoft Windows NT je založený na objektech. Různé komponenty v vedení definují jeden nebo více typů objektů. Každá komponenta exportuje rutiny podpory režimu jádra, které manipulují s instancemi svých typů objektů. Žádná komponenta nemá přímý přístup k objektům jiné komponenty. Pokud chcete použít objekty jiné komponenty, musí komponenta volat exportované rutiny podpory.
Tento návrh umožňuje, aby operační systém byl přenosný i flexibilní. Je například možné, aby budoucí verze operačního systému obsahovala překódovanou komponentu jádra, která definuje stejné typy objektů, ale s úplně různými interními strukturami. Pokud tato hypotetická překódovaná verze jádra exportuje sadu rutin podpory se stejnými názvy a parametry jako existující sada, nebudou mít interní změny žádný vliv na přenositelnost žádné jiné výkonné komponenty v existujícím systému.
Stejně tak, aby zůstaly přenosné a konfigurovatelné, ovladače musí komunikovat s operačním systémem a navzájem pomocí pouze podpůrných rutin a dalších rozhraní popsaných v WDK.
Stejně jako operační systém jsou ovladače také založené na objektech. Například:
Objekty souborů představují připojení aplikace v uživatelském režimu k zařízení.
Objekty zařízení představují logické, virtuální nebo fyzické zařízení každého ovladače.
Objekty ovladače představují načtecí obraz každého ovladače.
Správce vstupně-výstupních operací definuje strukturu a rozhraní pro objekty souborů, objekty zařízení a objekty ovladačů.
Stejně jako všechny ostatní výkonné komponenty používají ovladače objekty voláním rutin podpory režimu jádra, které správce vstupně-výstupních operací a další systémové komponenty exportují. Rutiny podpory režimu jádra mají obecně názvy, které identifikují konkrétní objekt, který každá rutina manipuluje, a operaci, kterou každá rutina provádí s daným objektem. Tyto názvy rutin podpory mají následující formulář:
PrefixOperationObject
kde
Předpona Identifikuje komponentu režimu jádra, která exportuje rutinu podpory, a obvykle komponentu, která definovala typ objektu. Většina předpon má dvě písmena.
Operace Popisuje, co se s objektem dělá.
Objekt Identifikuje typ objektu.
Například rutina IoCreateDevice správce vstupně-výstupních operací vytvoří objekt zařízení, který bude představovat fyzické, logické nebo virtuální zařízení jako cíl vstupně-výstupních požadavků.
Jedna systémová komponenta může exportovat rutiny, které volají rutiny podpory jiné komponenty. To může snížit počet volání, která musí řidič provést. Zejména správce vstupu/výstupu exportuje určité rutiny, které usnadňují vývoj ovladačů. Například IoConnectInterruptEx, které ovladače nejnižší úrovně používají k registraci svých ISRs, volá rutiny podpory jádra pro objekty přerušení.
Neprůhlednost objektu
Některé objekty definované systémem jsou neprůhlené: pouze definující systémová komponenta je informována o interní struktuře objektu a může přímo přistupovat ke všem datům, která objekt obsahuje. Systémová komponenta, která definuje neprůhledný objekt, exportuje podpůrné rutiny, které mohou ovladače a další komponenty režimu jádra volat pro manipulaci s tímto objektem. Ovladače nikdy nepřistupují k neprůžných strukturám objektů přímo.
Poznámka Aby se zachovala přenositelnost ovladačů, musí ovladače používat rutiny podpory poskytované systémem k manipulaci se systémem definovanými objekty. Definující systémová komponenta může kdykoli změnit vnitřní strukturu svých typů objektů.