My suggestion would be to write a wrapper DLL that would 'flatten/unflatten' your structure. In other words, LabVIEW would call a wrapper DLL and pass it simple data types, i.e. scalars, booleans, etc. This wrapper DLL would then put the data into the correct C Struct format and then call your original DLL.