Maybe try marking it with explicit [In, Out] attributes? I'm fairly sure it shouldn't be ref for this scenario (unless, as I said, it's a double pointer) but it might not marshal the results back by default. Adding the attribute would take care of that, I think.