xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

I try to use a struct as parameter in xQueueSendToBack.

on your page (https://freertos.org/xQueueSendToBack.html) is an example :

xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

sizeof( struct AMessage * ) != sizeof( AMessage ) ?

And it’s well commented with:
/* Create a queue capable of containing 10 pointers to AMessage
structures. These should be passed by pointer as they contain a lot of
data. */
xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

So I guess you try to ask howto send struct’ered data by copy and not by reference (pointer).
Well, in the same way using the desired data type:
xQueue2 = xQueueCreate( 10, sizeof( struct AMessage ) );

Queue items are in fact fixed size blocks of bytes.

Thank you ! You are right.
Two variants are possible.