Opening a handle to an existing global Kernel object

This document describes how to find a global kernel object by using a handle.

A handle can be opened on an existing global Kernel object.

Global Kernel objects are explicitly named by their creators; the technique for finding these objects involves using a search pattern to search for objects with matching full names. The TFindHandleBase provides the basic behavior.

In practice, each specific type has its own class derived from TFindHandleBase , for example, semaphores have TFindSemaphore , mutexes have TFindMutex and so on.

For example, the following code fragment searches for the first global semaphore whose full name ends with the characters "day" and opens a thread-relative handle on that semaphore:

      
       
      
      _LIT(KDay,"*day");
...
TFindSemaphore finder(KDay);       // derived from TFindHandleBase
TFullName      theName;
RSemaphore     theSem;             // derived from RHandleBase
...
if ((finder.Next(thename))==KErrNone)
    {
       theSem.Open(finder,EOwnerThread);
       ...
       }
...