On Windows OS for x86-32/x86-64 architecture thread stack virtual memory consist of "Reserved Part" "Commit Part", "Guard Page" and "Reserved Page".
Question:
Imagine that I have 1 page of commit memory, and 1MB of reserve memory for thread stack. I allocate on the stack some memory equal to K Pages without initialization. K is equal for example 10. It seems that in start of stack frame memory on the stack will be allocated by user space code like this:
sub esp, K*4096
Guard Page mechanism works when It is exist a read|write request to guard page.
But what will be I'll perform read/write to some memory which is beyond this guard page?