[Autogenerated] as we've seen,
the user mode stack has a maximum value of reserved
memory and initial committed size.
These sizes can be changed one way of doing that is by
having a special or certain linker settings,
essentially changing values in the portable executable header and as we've
seen Explorer has different values than VMs for example,
it's also possible to change the stack size on a thread by thread basis when
calling the create threat to one of its variants in code.
The default settings always apply to the first threat because
it's always created for you by the kernel.
But subsequent threats in the process couldn't be can be
configured differently by changing their stack size.
The curious thing is that you can change the committed initial committed
memory for the stack or the maximum reserve stack size but you can do
both with the normal user more the APIs which is kind of weird I think
and the way to do that there is just one stack parameter in the create
thread set of functions you just specify the number that you want and
then there's the flags parameter near the end of the function if you
specify zero,
it's interpreted as the initial commit size if you specify this weird flag name,
stack size, parameter reservation.
The number is interpreted as the maximum size you would like so you can set
both of them and that's kind of annoying because the anti create three d x
function which is the native API being called by all these functions does
allow you to specify both of these numbers.
Let's see how you can change the staff from within visual studio.