A secure process may be created which does not allow code to be injected
into it, does not allow modification of its memory or inspection of its
memory. The resources protected in a secure process include all the
internal state and threads running in the secure process. Once a secure
process is created, the secure process is protected from access by
non-secure processes. Process creation occurs atomically in kernel mode.
Creating the infrastructure of a process in kernel mode enables security
features to be applied that are difficult or impossible to apply in user
mode. By moving setup actions previously occurring in user mode such as
creating the initial thread, allocating the stack, initialization of the
parameter block, environment block and context record into kernel mode,
the need of the caller for full access fights to the created process is
removed.