> Why static and not stack?

The idea is to allocate once per thread.

> Why MAX_PATH + 1 and not MAX_PATH?

To include the null character.