Obory názvů objektů jádra
Systém Windows má více oborů názvů pro následující pojmenované objekty jádra: události, semafory, mutexy, čekací časovače, objekty mapování souborů, objekty úloh a symbolické objekty propojení. Globální obor názvů používaný primárně službami v klientských/serverových aplikacích. Každá relace má navíc pro tyto objekty samostatný obor názvů.
Samostatné obory názvů relací umožňují více klientům spouštět stejné aplikace, aniž by se vzájemně zasahovaly. Pro procesy spuštěné v rámci relace klienta používá systém ve výchozím nastavení obor názvů relace klienta. Tyto procesy však mohou použít globální obor názvů tak, že předponu "Global\" před název objektu. Například následující kód volá CreateEvent a vytvoří objekt události s názvem CSAPP v globálním oboru názvů:
CreateEventW( NULL, FALSE, FALSE, L"Global\\CSAPP" );
Aplikace služeb ve výchozím nastavení používají globální obor názvů.
Poznámka
Globální obor názvů není k dispozici pro aplikace pro Windows Store.
Nulová relace se používá pouze pro hostitelské služby a na rozdíl od verzí systému Windows před systémem Windows Vista neexistuje žádná relace konzoly.
Globální obor názvů umožňuje procesům v několika klientských relacích komunikovat s aplikací služby. Klient/serverová aplikace může například použít objekt mutex pro synchronizaci. Modul serveru může vytvořit objekt mutex v globálním oboru názvů. Potom může relace klienta použít předponu "Global\" k otevření objektu mutex.
Další použití globálního oboru názvů je pro aplikace, které používají pojmenované objekty ke zjištění, že v systému už existuje instance aplikace spuštěné ve všech relacích. Tento pojmenovaný objekt musí být vytvořen nebo otevřen v globálním oboru názvů místo oboru názvů pro jednotlivé relace. Častější případ spuštění aplikace jednou za relaci je ve výchozím nastavení podporován, protože pojmenovaný objekt je vytvořen v oboru názvů relace.
Kromě předpony "Global\" mohou klientské procesy použít předponu "Local\" k explicitnímu vytvoření objektu v oboru názvů relace. U těchto klíčových slov se rozlišují malá a velká písmena.
Předpona Session\ je vyhrazena pro použití systému a neměli byste ji používat v názvech objektů jádra.
Rychlé přepínání uživatelů se implementuje pomocí relací. První uživatel, který se přihlásí, používá relaci 1, další uživatel, který se přihlásí, používá relaci dvě atd. Názvy objektů jádra musí být v souladu s pokyny pro vzdálenou plochu, aby aplikace mohly podporovat více uživatelů.
Vytvoření objektu mapování souborů nebo symbolického propojení objektu v globálním oboru názvů, například pomocí CreateFileMapping, z jiné relace než relace nula je privilegovaná operace. Z tohoto důvodu musí aplikace mít SeCreateGlobalPrivilege povoleno, aby bylo možné vytvořit objekt mapování souborů nebo symbolický objekt propojení v globálním oboru názvů. Kontrola oprávnění je omezena na vytvoření těchto objektů a nevztahuje se na otevírání existujících objektů. Pokud například služba nebo systém vytvoří objekt mapování souborů v globálním oboru názvů, může jakýkoli proces spuštěný v jakékoli relaci získat přístup k objektu mapování souborů za předpokladu, že proces má potřebný přístup.