I do like get_section_data() as a helper in general though, which is to say I like having a function that just returns a pointer to a strongly typed struct. If you dislike it I'll revert to the pattern in dxbc.c, though.
Well, it returns a void pointer, at least in its current form. I think I understand what you mean though. 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.
In any case, the main objection here is that I think we should either pass a separate count and element size to get_section_data(), or use some kind of helper to do the multiplication safely before passing it to get_section_data().