An object directory lists object names and corresponding handles.
The object directory enables threads to use symbolic names to share object access.
The RT kernel creates an object directory for each process. The number of entries for processes is a parameter in the RT Application Loader.
You delete the process object directory when the process is deleted.
Typically, one thread creates an object and catalogs its handle and name. Another thread uses that name to look up the handle for the object. Two or more threads can share an object cataloged in an object directory.
Note: The object directory is case-sensitive: upper-and lower-case alphabetic characters are interpreted differently. The INtime kernel, however, sees the name as just a string of bytes; it does not interpret these bytes as ASCII characters.
This lists common operations on objects in object directories and the system calls that perform the operations. Threads can use the object directory of their process or another process.
To . . . | Use this system call . . . |
---|---|
Enter object in directory | CatalogRtHandle CatalogRtHandleLong ntxCatalogNtxHandle |
Get an object's type | GetRtHandleType GetRtHandleTypeEx ntxGetType |
Look up an object's name | LookupRtHandle LookupRtHandleLong ntxLookupNtxHandle |
Remove a directory entry | UncatalogRtHandle UncatalogRtHandleLong ntxUncatalogNtxHandle |
Get the root process handle | ntxGetRootRtProcess GetRtThreadHandles |
Obtain an NTXHANDLE that corresponds to an RTHANDLE | ntxImportRtHandle |
Return the contents of a process' object directory | InspectRtProcessDirectory |
Return the contents of a process' object directory entry | GetRtProcessDirectoryEntry |
Return the contents of a process' object directory entry, including long name | GetRtProcessDirectoryEntryLong |
This shows the order to make object directory system calls and lists calls that objects frequently use: