A struct pointer just points to some memory location.
So you receive the data and can directly cast the data as struct, I didnt do that alot on C# yet but since pointers are the same on C# and C++ and think it should work that way.

http://stackoverflow.com/questions/2297598/passing-a-struct-pointer-as-a-parameter-in-c-sharp