[Autogenerated] what kind of limits can be applied to a job.
So first we have a maximum number of processes in a job.
So assuming we have a process within a job that creates more processes.
The number of processes can be limited so that not
too many processes are created.
If the process that is now created goes beyond the limit,
it is immediately terminated.
Another kind of limit is CPU related limit and there are several of those.
One of them is the CPU running time per job or per process.
It's about actual CPU time used for running code.
So it's not just about the life of a process,
it's about actually running code within the process using CPU
resources and once the limit is uh is reached,
the process will terminate unless there's an I.
O.
Completion ports and then the completion ports will be notified.
And then the code running as part of that completion ports
handling might want to perhaps extend that limit.
There's also the ability to limit affinity affinity is about
which processors can be used by the job.
CPU rate control is another very nice limit that was creating
Windows eight that allows limiting the percentage of CPU
consumption for the processes in the job,
there's also a way to kind of tweak a little bit the quantum the
time slides used for every thread within the job.
But this is only available on server machines,
we'll discuss regulated and and quantum related things
in general in the future course, when we deal with threats.
But I'll show an example of using CPU rate control later on in this module.
There's also the ability to limit the amount of memory being used.
Physical memory, that's the working set.
You can specify minimum and maximum you might think
what's the point of specifying a minimum.
This allows the system to maintain at least some memory.
Always in row which makes it perhaps a bit faster to
access memory within this job, you can also set a process commit maximum.
That's the maximum memory.
You can allocate in the in the process within the job regardless of
whether it's currently in physical memory or not.
There are also limits you can set for network bandwidth and I O
bandwidth and some other details about IO reads and writes.
These kinds of limits have been introduced in Windows 10 and finally,
there's some limits rated to user interface stuff,
such as some limits on user interface and G D I handles.
You can limit the ability to copy and paste for example.
So if you don't like allow copy,
it means you cannot copy for from within the job to
any kind of process outside the job.
You can also limit paste in the same way.
So this kind of gives you a very lightweight sandbox of sorts,
at least to some extent.
And there's some other similar limit that you can specify.
Now of course, generally you can use any number of limits that you want.
Just need to call the set information job object function as we'll see later.
Multiple number of times.
You can combine these things in any way you see fit,
and it's also possible to lift limits later on the controller of the job.
The one has a powerful handle to the job can play with
these limits as that someone sees fit.
So let's see jobs little bit using tools and then
take a deeper look at the jobs API