This document explains the distinction between local and global handles.
This is the issue of Kernel side object visibility.
Handles are said to be local or global.
A handle is local , if the Kernel object which that handle represents is only visible to the thread that created it; no other thread can open a handle to the same Kernel object.
Typically, code constructs the appropriate RHandleBase derived object, e.g. an RMutex , and calls its Create() , CreateLocal() or equivalent function to create the corresponding Kernel object.
A handle is global , if the Kernel object which that handle represents is visible to all threads across all processes; any thread in any process can open a handle to that same Kernel object. Typically, such a Kernel object is intended for sharing.
For a global handle. the corresponding Kernel object is assigned a name. The name gives that Kernel object an identity and is the key property which allows other threads to open a handle onto that same object. It is usual to use a TFindHandleBase derived class to locate a global Kernel object. The following diagram shows the general idea.
Names and fullnames in reference counting objects.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License v1.0.