lately I've had some issues with access-violations from the SDK in different constellations (multiple people with different setups). I tracked them down and I'm pretty sure they are caused by calls to SetMbMode (but i think other methods would be affected too) with an invalid handle. While I understand why the error occurs in such a situation, I'd highly appreciate if this case would be checked in the SDK and handled with an error-code or an exception that doesn't corrupt the application state.
The second important point about this is, that it's ultimately only fighting the symptoms. The root-cause of the problem seems to be a wrong (to big) count returned by EnumerateMbController. This seems to happen quite often (for all types of devices), for example it shows a graphics card for me even if I don't have a aura-ready one, but only the second mainboard (I don't have that issue, but some other people get that instead of the graphics card) returned seems to reliable lead to this issue.
I'm not sure what's the better and easier solution on your side but either should the Enumerate-Method work reliable or it should be possible to test if the handle is working without causing access violatinos in the SDK.
I'm having the same problem too... Different values for different computer. I have a zotac 1050ti and still see the 1 gpu controller. also hangs with lots of asus an non-asus motherboard when calling enumeratembcontroller