It never feels quite right to me to read/write complete structures like that, but I suppose that at this point there are few enough big endian machines left that perhaps we don't need to be overly concerned with them.
Don't we assume little endian more or less everywhere already? That's not really related reading or writing structures as opposed to individual fields. BTW, I'd totally be in favor of being portable on endianness too, but that probably would have to be a project-wide decision now.
Relatedly, and for similar reasons, even using `memcpy()` as suggested in https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/627#note_60196 doesn't feel right to me. IIUC that's not safe for the C standard. You are assuming that two structures with the same prefix have the same layout for those fields (different is the case of a structure having the other one as first field).