By blocked, you mean your code gets to that point but then hangs when executing that function, correct?
I assume you're calling DeInit before unloading, and only calling Init once at load..
Check all of your declarations. I've found the SDK to be very fragile. If you declare something incorrectly, some memory gets corrupt along the way, and things start hanging or crashing. Especially the function declarations and callbacks (function pointers).
Also, if you're multi-threading, well, I don't recommend it until you get everything working with a single thread first.
(btw I'm just a developer who uses this SDK and got most of it wrapped in .Net. I'm not in any way associated with the BS devs / support)