It is possible to pass struct as an input to the S-Function in Simulink. Using a constant block with the struct as value, you can pass the signal as "Simulink.Bus". To make a bus for the struct you can follow the below linked MATLAB Answer.
In the S-Function Output Wrapper, change the input type to the newly created Bus. If you are using S-Funtion builder in Simulink, it will automatically create an header file for defining the bus else you need to define the header file while creating the Bus object and include it in the S-Function file.

For more detailed steps on how to use Bus with S-Functions in Simulink you can follow this MATLAB Documentation.
or use this command in MATLAB command window
web(fullfile(docroot, 'simulink/sfg/building-s-functions-automatically.html'))
Hope this helps!

