I know from MS_Document ,X64 Calling Convention, Caller must Allocates some space for Callee.
but i wrote several codes with calling functions without allocating any shadow space but i did not see any error.
here it is for example [works without any error in Visual studio 2022 and disabled whole program optimization]
includelib msvcrt.lib
includelib legacy_stdio_definitions.lib
extern _CRT_INIT: proc
extern printf: proc
extern ExitProcess: proc
.data
msg db "hello world!", 13, 10, 0
.code
main proc
call _CRT_INIT
lea rcx,msg
call printf
call ExitProcess
main endp
end