[Autogenerated] This brings us to the End of this module
this module was all about sharing.
We started to look at three ways for sharing.
Kernel objects between processes.
The first option which is the simplest one.
Is sharing by name.
If indeed, we provide a name, and If it is even possible.
To provide a name based on the object types we need to share.
The second option we've seen is sharing using process handle inheritance.
This works when a process creates a child process,
and While creating it, it can duplicate a bunch of handles from its process.
To the newly created process.
So this is fairly easy.
To use and convenient but only apps to This particular case
of one process creating another process.
The third option which is the most generic one which always works.
Is handle, duplication.
We simply take a handle from one process.
And duplicate, that into another process.
Of course,
assuming we have powerful enough handles for these processes in practice its
the most complex way of sharing objects because we must have some other way
of telling the other process about duplication.
And the resulting handle.
We've looked at object names which is a way.
To identify or locate objects by name because these names,
are normally shared there.
Is the possibility of creating private object names
spaces using the private object.
Namespace APIs such as create private namespace and friends,
which you can find more information on in the Microsoft documentation.
We've seen that names, are Also by default part of sessions, and It's possible.
To share objects between sessions by using session
zero as the common denominator.
In the Next module we discuss more aspects related to
kernel objects which we haven't yet covered.