Message 245148 - Python tracker
I note that the code for CFFI has a fix in ffi_prep_incoming_args_SYSV, as follows:
#ifdef _WIN64
if (z > 8)
{
/* On Win64, if a single argument takes more than 8 bytes,
then it is always passed by reference. */
*p_argv = *((void**) argp);
z = 8;
}
else
#endif
*p_argv = (void*) argp; /* The original code, works for 32-bit */
(Source: https://bitbucket.org/cffi/cffi/src/abc8ff5b2885b3d9f22bbb314a011b8dd63c9e14/c/libffi_msvc/ffi.c?at=default)