ike, I don't understand why you have 12 different data structures that do the same thing, in different namespaces, some types that are classes but some that have constructors some that don't, some that use void pointers, some that use templates, some type names that are missing letters, some that you must initialize not with a constructor, but with BNZeroMemory, and that the SDK provides header files that are there for whatever purpose but that we're not allowed to use other than to make things compile, some classes that we are allowed to use but when you call some of their methods you get unresolved externals, and so on...
You could start a new topic in this Developer Forum about this... legacy API / API documentation. Some of the things are ancient...and have more modern wrappers now, but are still there for legacy support (without requiring heavy updates to add-on code), others are newer and more object oriented. Not being a profit center, a full, clean update of the API, data structures and documentation is not likely. Also, because it relies on proprietary code - and access to the actual product code - it is not something that can be made open source / community-driven either.
Thanks for your clarification that you are on the 24 and 25 devkits and that the old solutions as well as yours apply there. 🙂
One of the forum moderators
AC 26 USA and earlier • macOS Ventura 13.4, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB