Megosztás:


Objektumnevek

Az elnevezett objektumok megkönnyítik a folyamatok számára az objektumfogópontok megosztását. Miután egy folyamat létrehozott egy elnevezett eseményt, mutex-, szemaphore- vagy időzítőobjektumot, más folyamatok a nevet használva meghívhatják a megfelelő függvényt (OpenEvent, OpenMutex, OpenSemaphorevagy OpenWaitableTimer) a leíró megnyitásához. A név-összehasonlítás megkülönbözteti a kis- és nagybetűk különbségét.

Az esemény, a szemaphore, a mutex, a várakozási időzítő, a fájlleképezés és a feladatobjektumok neve ugyanazzal a névtérrel rendelkezik. Ha egy másik típusú objektum által használt névvel próbál objektumot létrehozni, a függvény meghiúsul, és GetLastErrorERROR_INVALID_HANDLEad vissza. Ezért névvel ellátott objektumok létrehozásakor használjon egyedi neveket, és ellenőrizze, hogy a függvény ismétlődő névhibák esetén visszaadott értékeket ad-e vissza.

Ha egy azonos típusú objektum által használt névvel próbál objektumot létrehozni, a függvény sikeres lesz, egy leírót ad vissza a meglévő objektumnak, és GetLastErrorERROR_ALREADY_EXISTSad vissza. Ha például a CreateMutex függvény hívásában megadott név megegyezik egy meglévő mutex-objektum nevével, a függvény egy leírót ad vissza a meglévő objektumnak. Ebben az esetben a CreateMutex hívása egyenértékű az OpenMutex függvény hívásával. Ha több folyamat is használja a CreateMutex ugyanarra a mutexre, az egyenértékű azzal, ha egy folyamat meghívja CreateMutex, míg a többi folyamat meghívja OpenMutex, azzal a különbségekkel, hogy nincs szükség arra, hogy a létrehozási folyamat először elinduljon. Ha azonban ezt a technikát mutex objektumokhoz használja, a hívási folyamatok egyike sem igényelheti a mutex azonnali tulajdonjogát. Ha több folyamat is azonnali tulajdonjogot kér, nehéz megjósolni, hogy melyik folyamat kapja meg a kezdeti tulajdonjogot.

A Terminálszolgáltatások környezetei globális névtérrel rendelkeznek az események, a szemaphorok, a mutexek, a várható időzítők, a fájlleképezési objektumok és a feladatobjektumok számára. Ezenkívül minden Terminálszolgáltatások ügyfél-munkamenetnek saját külön névtere van ezekhez az objektumokhoz. A Terminálszolgáltatások ügyfélfolyamatai "Global\" vagy "Local\" előtaggal rendelkező objektumnevekkel explicit módon hozhatnak létre objektumokat a globális vagy munkamenet-névtérben. További információ: kernelobjektum-névterek. A gyors felhasználói váltás a Terminálszolgáltatások munkamenetekkel történik (minden felhasználó egy másik munkamenetbe jelentkezik be). A kernelobjektumok nevének a Terminálszolgáltatásokra vonatkozó irányelveket kell követnie, hogy az alkalmazások több felhasználót is támogassanak.

A szinkronizálási objektumok privát névtérben hozhatók létre. További információ: Objektumnévterek.

Elnevezett objektumok használata